我需要创建一个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语法不正确 'APR-03-2016'。
如果你能帮我解决一下,我们将不胜感激。
提前谢谢。
答案 0 :(得分:2)
您希望使用方括号作为分隔符,而不是单引号。 “日期”是列名,而不是vaues:
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),而不是依赖于位置的日期格式。
答案 1 :(得分:0)
;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;