【发布时间】:2018-08-08 07:03:35
【问题描述】:
SELECT *
FROM
(SELECT
SUM(CASE WHEN LOCAL_CCY_AMT < 0 THEN LOCAL_CCY_AMT END) AS DR
FROM
INSIGHTSOURCE.BS.RE_CRF_GL
WHERE
CONSOL_KEY10 = 'CUR'
GROUP BY
Consol_Key10
CROSS JOIN
SELECT
SUM(CASE WHEN LOCAL_CCY_AMT < 0 THEN LOCAL_CCY_AMT END) AS DR
FROM
INSIGHTSOURCE.BS.RE_CRF_GL
WHERE
CONSOL_KEY10 IN ('REG','WCL')
GROUP BY
Consol_Key10
CROSS JOIN
SELECT
SUM(CASE WHEN LOCAL_CCY_AMT < 0 THEN LOCAL_CCY_AMT END) AS DR
FROM
INSIGHTSOURCE.BS.RE_CRF_GL
WHERE
CONSOL_KEY10 IN ('OAM', 'SUB')
GROUP BY
Consol_Key10
CROSS JOIN
SELECT
SUM(CASE WHEN LOCAL_CCY_AMT < 0 THEN LOCAL_CCY_AMT END) AS DR
FROM
INSIGHTSOURCE.BS.RE_CRF_GL
WHERE
CONSOL_KEY10 IN ('DBT', 'LOS')
GROUP BY
Consol_Key10
CROSS JOIN
SELECT
SUM(CASE WHEN LOCAL_CCY_AMT < 0 THEN LOCAL_CCY_AMT END) AS DR
FROM
INSIGHTSOURCE.BS.RE_CRF_GL
WHERE
CONSOL_KEY10 IN ('CHO')
GROUP BY
Consol_Key10
)
我收到以下错误:
消息 156,第 15 级,状态 1,第 4 行
关键字“CROSS”附近的语法不正确。消息 156,第 15 级,状态 1,第 6 行
关键字“CROSS”附近的语法不正确。消息 156,第 15 级,状态 1,第 8 行
关键字“CROSS”附近的语法不正确。消息 156,第 15 级,状态 1,第 10 行
关键字“CROSS”附近的语法不正确。消息 102,第 15 级,状态 1,第 12 行
')' 附近的语法不正确。
【问题讨论】:
-
采取更小的步骤。使用一个交叉连接创建一个小查询。然后进行下一步。
-
您希望输出中有多少列和行?
-
您有 5 列,全称为
DR,包含各种不同的值。当无法区分每个查询的结果时,您打算如何访问这些数据? -
我会尝试 UNION ALL 而不是 CROSS JOIN。
标签: sql-server select subquery