求解,UNION ALL 多表关联!该如何处理
求解,UNION ALL 多表关联!
用UNION ALL 将两个表关联起来后作为一个新表F,然后用F关联其他的表却提示
消息 4104,级别 16,状态 1,第 49 行
无法绑定由多个部分组成的标识符 "PURMA.MA001"。
难道一定要先分别在两个表中关联带值,然后再用UNION ALL 关联一次么?求解!
语句如下:
SELECT COPMA.MA002 as COPMAMA002,CMSME.ME002 as CMSMEME002,CMSMV.MV002 as CMSMVMV002
FROM
(
/*销货部分*/
SELECT
COPTG.TG003 as XHRQ,
COPTG.TG004 as XHKH,
COPTG.TG005 as XHBM,
COPTG.TG006 as YWRY,
COPTG.TG047 as FKTJ,
COPTH.TH001 as XHDB,
COPTH.TH002 as XHDH,
COPTH.TH003 as XHXH,
COPTH.TH004 as XHPH,
COPTH.TH005 as PHPM,
COPTH.TH006 as PHGG,
COPTH.TH019 as KHPH,
COPTH.TH009 as XHDW,
COPTH.TH008 as XHSL,
COPTH.TH012 as XHDJ,
COPTH.TH013 as XHJE
FROM COPTG as COPTG
Left JOIN COPTH as COPTH On COPTG.TG001=COPTH.TH001 and COPTG.TG002=COPTH.TH002
WHERE ((COPTH.TH020 = 'Y'))
union all
/*销退部分*/
SELECT
COPTI.TI003 as XHRQ,
COPTI.TI004 as XHKH,
COPTI.TI005 as XHBM,
COPTI.TI006 as YWRY,
COPTI.TI039 as FKTJ,
COPTJ.TJ001 as XHDB,
COPTJ.TJ002 as XHDH,
COPTJ.TJ003 as XHXH,
COPTJ.TJ004 as XHPH,
COPTJ.TJ005 as PHPM,
COPTJ.TJ006 as PHGG,
COPTJ.TJ029 as KHPH,
COPTJ.TJ008 as XHDW,
COPTJ.TJ007 as XHSL,
COPTJ.TJ011 as XHDJ,
COPTJ.TJ012 as XHJE
FROM COPTI as COPTI
Left JOIN COPTJ as COPTJ On COPTI.TI001=COPTJ.TJ001 and COPTI.TI002=COPTJ.TJ002
WHERE ((COPTJ.TJ021 = 'Y'))
) AS F
LEFT JOIN COPMA AS COPMA ON F.XHKH=PURMA.MA001
Left JOIN CMSME as CMSME ON F.XHBM=CMSME.ME001
LEFT JOIN CMSMV AS CMSMV ON F.YWRY=CMSMV.MV001
------解决思路----------------------
LEFT JOIN COPMA AS COPMA ON F.XHKH=PURMA.MA001
改為以下試試:
LEFT JOIN COPMA AS COPMA ON F.XHKH=COPMA.MA001
用UNION ALL 将两个表关联起来后作为一个新表F,然后用F关联其他的表却提示
消息 4104,级别 16,状态 1,第 49 行
无法绑定由多个部分组成的标识符 "PURMA.MA001"。
难道一定要先分别在两个表中关联带值,然后再用UNION ALL 关联一次么?求解!
语句如下:
SELECT COPMA.MA002 as COPMAMA002,CMSME.ME002 as CMSMEME002,CMSMV.MV002 as CMSMVMV002
FROM
(
/*销货部分*/
SELECT
COPTG.TG003 as XHRQ,
COPTG.TG004 as XHKH,
COPTG.TG005 as XHBM,
COPTG.TG006 as YWRY,
COPTG.TG047 as FKTJ,
COPTH.TH001 as XHDB,
COPTH.TH002 as XHDH,
COPTH.TH003 as XHXH,
COPTH.TH004 as XHPH,
COPTH.TH005 as PHPM,
COPTH.TH006 as PHGG,
COPTH.TH019 as KHPH,
COPTH.TH009 as XHDW,
COPTH.TH008 as XHSL,
COPTH.TH012 as XHDJ,
COPTH.TH013 as XHJE
FROM COPTG as COPTG
Left JOIN COPTH as COPTH On COPTG.TG001=COPTH.TH001 and COPTG.TG002=COPTH.TH002
WHERE ((COPTH.TH020 = 'Y'))
union all
/*销退部分*/
SELECT
COPTI.TI003 as XHRQ,
COPTI.TI004 as XHKH,
COPTI.TI005 as XHBM,
COPTI.TI006 as YWRY,
COPTI.TI039 as FKTJ,
COPTJ.TJ001 as XHDB,
COPTJ.TJ002 as XHDH,
COPTJ.TJ003 as XHXH,
COPTJ.TJ004 as XHPH,
COPTJ.TJ005 as PHPM,
COPTJ.TJ006 as PHGG,
COPTJ.TJ029 as KHPH,
COPTJ.TJ008 as XHDW,
COPTJ.TJ007 as XHSL,
COPTJ.TJ011 as XHDJ,
COPTJ.TJ012 as XHJE
FROM COPTI as COPTI
Left JOIN COPTJ as COPTJ On COPTI.TI001=COPTJ.TJ001 and COPTI.TI002=COPTJ.TJ002
WHERE ((COPTJ.TJ021 = 'Y'))
) AS F
LEFT JOIN COPMA AS COPMA ON F.XHKH=PURMA.MA001
Left JOIN CMSME as CMSME ON F.XHBM=CMSME.ME001
LEFT JOIN CMSMV AS CMSMV ON F.YWRY=CMSMV.MV001
------解决思路----------------------
LEFT JOIN COPMA AS COPMA ON F.XHKH=PURMA.MA001
改為以下試試:
LEFT JOIN COPMA AS COPMA ON F.XHKH=COPMA.MA001