有没有办法将动态数据透视查询的结果直接存储到固定表中?由于结果是动态的,我无法通过指定列名和方法来创建表,例如“create table MyTable as (pivot select statement)”似乎在 SQL Server 上失败(“关键字'AS'附近的语法不正确”)。我试图格式化下面的 SQL 以获得 SELECT - INTO - FROM 结构,但没有这样做。任何帮助显然都非常感谢!
用于枢轴的 SQL 是(感谢这个伟大的网站!):
declare @pivot varchar(max), @sql varchar(max)
create table pivot_columns (pivot_column varchar(100))
insert into pivot_columns
select distinct DateField from MyTable order by 1
select @pivot=coalesce(@pivot+',','')+'['+pivot_column+']'from pivot_columns
set @sql = 'SELECT * FROM (select DateField, RefCode, SumField from MyTable) p
PIVOT
(sum(SumField) FOR DateField IN ( ' + @pivot + ') )
AS pvl'
drop table pivot_columns
exec (@sql)