2013-03-14 69 views
0

我是新来的sql编程。使用Pivot时,将记录存储到动态查询中的临时表中。

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

数据透视列是动态选择的。

我的查询是:

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 ('[email protected]+'))PVT') 

我想这个结果保存为进一步报告的临时表。

请帮帮我。提前致谢。

回答

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 ('[email protected]+'))PVT') 
相关问题