我有一个包含以下列的表格:
Anno, Description, Number
________________________
2011 Example1 12
2013 Example2 9
2011 Example4 8
列 Description
的值是动态的。
我需要制作一个表格,如下:
Anno Example1 Example2 Example3 Example4 ........
--------------------------------------------------
2011 12 0 0 8 ........
2012 0 23 24 36 ........
......
我创建了一个如下所示的视图:
Declare @cols AS NVARCHAR(Max),
@query AS NVARCHAR(Max)
Select @cols = STUFF(( Select ','+QUOTENAME(Description)
FROM mytable
GROUP BY Description
Order by Description
FOR XML PATH ('',TYPE
).value('.','NVARCHAR(Max)'),1,1,'')
SET @query= 'Select Anno, '+cols+' from
(Select Anno, Description, Number
FROM mytable ) as x
PIVOT
(
SUM(Number)
FOR Description in ('+cols+')
) pvt'
EXECUTE(@query)
出现错误:
语法不正确,附近有逗号
EXECUTE
行上?假设是的话,像这样进行动态查询生成时,在执行之前打印查询通常是很有用的。在执行之前,@query
包含什么内容? - Daniel RenshawPRINT
语句并在 Management Studio 中执行它,您应该会看到查询结果打印到输出窗口。 - Daniel Renshaw