数据透视表 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;
我需要创建一个 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;