数据透视表 SQL 查询无效

Pivot SQL query is not working

我需要创建一个 pivot 查询来获取一些以每周为列的年度报告,该查询不起作用。在故障排除期间,我将其隔离为以下内容:

WITH PivotData AS
(
select [ProjectWork Number], WeekNO, WeekValue From dbo.staging 
) 

select [ProjectWork Number], WeekValue, 'Apr-03-2016', 'Apr-10-2016'
From PivotData
PIVOT
(
Sum(WeekValue) For WeekNO in ('Apr-03-2016', 'Apr-10-2016')
) As PivotResult

它抛出错误:

Msg 102, Level 15, State 1, Line 10 Incorrect syntax near 'Apr-03-2016'.

可以在 sqlservercentral

上找到更详细的讨论

如能帮我整理一下,将不胜感激

提前致谢。

您需要方括号作为分隔符,而不是单引号。 "dates" 是列名,不是值:

WITH PivotData AS (
    select [ProjectWork Number], WeekNO, WeekValue From dbo.staging 
) 
select [ProjectWork Number], WeekValue, [Apr-03-2016], [Apr-10-2016]
From PivotData
PIVOT (
    Sum(WeekValue) For WeekNO in ([Apr-03-2016], [Apr-10-2016])
) As PivotResult;

我建议您使用 ISO 标准日期格式(例如 YYYY-MM-DD),而不是依赖位置的日期格式。

;WITH PivotData AS (select [ProjectWork Number], WeekNO, WeekValue From dbo.staging )select * FROM ( SELECT [ProjectWork Number], WeekValue, WeekNO From PivotData )A PIVOT (Sum(WeekValue) For WeekNO in ([Apr-03-2016], [Apr-10-2016])) As PivotResult;