【发布时间】:2025-02-11 15:15:01
【问题描述】:
我正在尝试在 SQL Server 2012 中运行我的第一个动态数据透视。
我用于动态旋转的#temp 表如下所示。
YearMonth Agreement nr Discount
------------------------------------
201303 123 1
201303 12 0
201304 1 0
我正在运行这段代码,但它不起作用:
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
--Get distinct values of the PIVOT Column
SELECT @ColumnName = ISNULL(@ColumnName + ',', '') + QUOTENAME(YearMonth )
FROM (SELECT DISTINCT YearMonth FROM #FINAL) AS Courses
--Prepare the PIVOT query using the dynamic
SET @DynamicPivotQuery =
N'SELECT [Agreement nr],YearMonth , ' + @ColumnName + '
FROM #FINAL
PIVOT(
COUNT(agreement nr)
FOR YearMonth IN (' + @ColumnName + ') AS PVTTable'
--Execute the Dynamic Pivot Query
EXECUTE @DynamicPivotQuery;
我得到的错误信息是
FOR YearMonth IN ([201403]) AS PVTTable' 不是有效标识符。
我在这里错过了什么?
【问题讨论】:
标签: sql sql-server-2012 dynamic-pivot