我已经搜索了该站点,并且我认为我做得正确,但是已经晚了,现在我必须脑子死了。这个PIVOT SQL有什么问题?
SELECT AccountNum
, MONTH(MAX(DealBookDate)) AS Month
, YEAR(MAX(DealBookDate)) AS Year
FROM
(
SELECT AccountNum
, MONTH(MAX(DealBookDate)) AS mth
, YEAR(MAX(DealBookDate)) AS yr
, DealBookDate
FROM vehicle.sales
WHERE accountnum IN
('R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11',
'R12', 'R13', 'R14', 'R15')
GROUP BY AccountNum
, DealBookDate
) AS SourceTable
PIVOT
(
COUNT(DealBookDate)
FOR AccountNum
IN
(
R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15
)
)
AS PivotTable;
这是我收到的错误消息:
消息207,级别16,状态1,第31行无效的列名称 “ AccountNum”。消息207,级别16,状态1,第32行无效列 名称为“ DealBookDate”。消息207,级别16,状态1,第33行无效 列名称“ DealBookDate”。
请对我好一点,毕竟是星期一。
答案 0 :(得分:0)
尝试以下方式
SELECT *
FROM
(
SELECT *
FROM vehicle.sales
WHERE accountnum IN
('R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11',
'R12', 'R13', 'R14', 'R15')
) AS SourceTable
PIVOT
(
COUNT(DealBookDate)
FOR AccountNum
IN
(
[R1], [R2], [R3], [R4], [R5], [R6],[R7],[R8],[R9], [R10], [R11], [R12], [R13], [R14], [R15]
)
)
AS PivotTable;
答案 1 :(得分:0)
这是正确的语法。
rename