使用Pivot时,将记录存储到动态查询中的临时表中。

时间:2013-03-14 06:33:26

标签: sql-server-2008 pivot-table temp-tables

我是sql编程的新手。

我想存储从数据透视查询返回的结果集记录。

动态选择数据透视表列。

我的查询是:

declare @cols nvarchar(max)

set @cols=STUFF((select distinct ',[' + LTRIM(rtrim(year(Dt)))+']' from temp FOR XML PATH('')),1,1,'');

EXEC('select * from 
(select YEAR(Dt)[year],Software,Ver from temp)T
Pivot(count([year]) for [year] in ('+@cols+'))PVT')

我想将此结果存储到临时表中以进行进一步报告。

请帮帮我。提前致谢。

1 个答案:

答案 0 :(得分:1)

  

尝试以下查询。您必须使用INTO

declare @cols nvarchar(max)

set @cols=STUFF((select distinct ',[' + LTRIM(rtrim(year(Dt)))+']' 
from temp 
FOR XML PATH('')),1,1,'');

EXEC('select * INTO ##temptable from 
    (select YEAR(Dt)[year],Software,Ver from temp)T
    Pivot(count([year]) for [year] in ('+@cols+'))PVT')
相关问题