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 ('+@cols+'))PVT')

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

请帮我。提前致谢。

4

1 回答 1

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')
于 2013-03-14T07:11:33.507 回答