UNION ALL FROM SELECT STATEMENT NOT WORKING

时间:2014-03-13 06:39:19

标签: sql sql-server sql-server-2008 sql-server-2008-r2

我有以下5个表:

TABLE OLD_A ( CID, CNO, CNAME )
TABLE OLD_B ( DID, DNO, DNAME )
TABLE OLD_MAP ( CID, DID, TERRITORY )
TABLE NEW_A ( NCID, NCNO, NCNAME )
TABLE NEW_MAP ( NCNO, DNO, TERRITORY  )

我想从新旧表中获取CNOCNAME,因此我进行了以下查询

DECLARE@TERRITORY varchar(16), @DNO varchar(16)

SELECT RESULT.`enter code here`CNO as CNO, RESULT.CNAME as CNAME, RESULT.Is_New_Or_Old as Is_New_Or_Old
FROM
(
  (SELECT C.CNO as CNO, C.CNAME as CNAME, 'OLD' AS Is_New_Or_Old [OLD_A] AS C LEFT JOIN [OLD_MAP] AS DCL ON C.ID = DCL.CID JOIN [OLD_B] AS D ON DCL.DID = D.ID WHERE C.TERRITORY = @TERRITORY AND D.DNO = @DNO )
  UNION ALL 
  (SELECT NC.NCNO as CNO, NC.CNAME as CNAME, 'NEW' AS Is_New_Or_Old  FROM [NEW_A] AS NC LEFT JOIN [NEW_MAP] AS CDTL ON NC.NCNO = CDTL.NCNO WHERE CDTL.DNO = @DNO AND CDTL.Territory_Id = @TERRITORY)
) RESULT 
ORDER BY CNO

但它给了我错误

Incorrect syntax near ')'.

最后一次)

1 个答案:

答案 0 :(得分:2)

FROM

之后,您遗失了'OLD' AS Is_New_Or_Old

简单格式化可以避免这些错误