我需要创建一个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,第15级,状态1,第10行,不正确的语法接近‘4月03-2016’。
更详细的讨论可以在[医]正中上找到
如果你能帮我解决这件事,我将不胜感激。
提前谢谢你。
发布于 2016-11-25 01:58:57
您希望方括号作为分隔符,而不是单引号。“日期”是列名,而不是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 DD),而不是与位置相关的格式。
发布于 2016-11-25 05:22:31
;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;
https://stackoverflow.com/questions/40796658
复制相似问题