T-SQL 中的数据透视抛出语法错误
Pivot in T-SQL throws syntax error
我正在尝试在 T-SQL 中做一个支点,即 return SUM(INVOICE_AMOUNT)
2015 年和 2016 年每个 CUST_ID
。
但是我使用的 SQL 抛出一个错误:
Incorrect syntax near '('
而且我无法识别语法错误。有人可以告诉我它有什么问题吗?
SELECT
H.CUST_ID, [2015], [2016]
FROM
(SELECT
H.INVOICE_AMOUNT, YEAR(H.INVOICE_DT)
FROM
BILLING_HEADER H) p
PIVOT
SUM(H.INVOICE_AMOUNT) FOR YEAR(INVOICE_DT) IN ([2015], [2016])) AS pvt
Year(INVOICE_AMOUNT)
有 [2015] 和 [2016] 的静态选项,所以不确定 SQL..
有什么问题
PIVOT
运算符在 FOR
关键字之后需要 column that contains the values that will become column headers。给 YEAR(INVOICE_DT)
一个别名并在 FOR
之后使用该别名
SELECT H.CUST_ID, [2015], [2016]
FROM
(
SELECT H.INVOICE_AMOUNT, YEAR(H.INVOICE_DT) AS INVOICE_YEAR
FROM BILLING_HEADER H
) p
PIVOT
SUM(H.INVOICE_AMOUNT)
FOR INVOICE_YEAR in ([2015],[2016])
) as pvt
本质上,PIVOT 运算符执行 GROUP BY
操作,它通过从源 [=24] 中删除 PIVOT
运算符中使用的列来猜测应该将哪个列放入 GROUP BY
子句=] 列。这种猜测不适用于功能。在
查看一些信息
我正在尝试在 T-SQL 中做一个支点,即 return SUM(INVOICE_AMOUNT)
2015 年和 2016 年每个 CUST_ID
。
但是我使用的 SQL 抛出一个错误:
Incorrect syntax near '('
而且我无法识别语法错误。有人可以告诉我它有什么问题吗?
SELECT
H.CUST_ID, [2015], [2016]
FROM
(SELECT
H.INVOICE_AMOUNT, YEAR(H.INVOICE_DT)
FROM
BILLING_HEADER H) p
PIVOT
SUM(H.INVOICE_AMOUNT) FOR YEAR(INVOICE_DT) IN ([2015], [2016])) AS pvt
Year(INVOICE_AMOUNT)
有 [2015] 和 [2016] 的静态选项,所以不确定 SQL..
PIVOT
运算符在 FOR
关键字之后需要 column that contains the values that will become column headers。给 YEAR(INVOICE_DT)
一个别名并在 FOR
SELECT H.CUST_ID, [2015], [2016]
FROM
(
SELECT H.INVOICE_AMOUNT, YEAR(H.INVOICE_DT) AS INVOICE_YEAR
FROM BILLING_HEADER H
) p
PIVOT
SUM(H.INVOICE_AMOUNT)
FOR INVOICE_YEAR in ([2015],[2016])
) as pvt
本质上,PIVOT 运算符执行 GROUP BY
操作,它通过从源 [=24] 中删除 PIVOT
运算符中使用的列来猜测应该将哪个列放入 GROUP BY
子句=] 列。这种猜测不适用于功能。在