SQL问题(在关键字 'SELECT' 附近有语法错误)

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:15:26
SELECT A.*,D.*
FROM BK_HEADER A WITH (NOLOCK)
LEFT JOIN
(
SELECT
C.BK_NO_ID,
SUM(CASE WHEN LEFT(C.CONTAINER_TYPE,1)='2' and C.CONTAINER_TYPE<>'20RF' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T20,
SUM(CASE WHEN C.CONTAINER_TYPE='20RF' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T20RF,
SUM(CASE WHEN LEFT(C.CONTAINER_TYPE,1)='4' AND C.CONTAINER_TYPE<>'40HC' AND C.CONTAINER_TYPE<>'40RH'AND C.CONTAINER_TYPE<>'40RF' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T40,
SUM(CASE WHEN C.CONTAINER_TYPE='40HC' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T40HC,
SUM(CASE WHEN C.CONTAINER_TYPE='40RH' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T40RH,

left join必须加上ON字句指定连接条件
如果A和D没有关联条件,那就这么写
SELECT A.*,D.*
FROM BK_HEADER A WITH (NOLOCK)
LEFT JOIN
(
SELECT
C.BK_NO_ID,
SUM(CASE WHEN LEFT(C.CONTAINER_TYPE,1)='2' and C.CONTAINER_TYPE<>'20RF' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T20,
SUM(CASE WHEN C.CONTAINER_TYPE='20RF' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T20RF,
SUM(CASE WHEN LEFT(C.CONTAINER_TYPE,1)='4' AND C.CONTAINER_TYPE<>'40HC' AND C.CONTAINER_TYPE<>'40RH'AND C.CONTAINER_TYPE<>'40RF' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T40,
SUM(CASE WHEN C.CONTAINER_TYPE='40HC' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T40HC,
SUM(CASE WHEN C.CONTAINER_TYPE='40RH' THEN ISNULL(C.QUANTITY,0) ELSE 0 END) AS T40RH,
SUM(CASE WHEN LEFT(CONTAINER_TYPE,1)='2' THEN ISNULL(C.QUANTITY,0) ELSE 2*ISNULL(C.QUANTITY,0) END) AS TEU
FROM BK_REQUEST_EQUIPMENTS C WITH