動的ピボットクエリの結果を固定テーブルに直接保存する方法はありますか?結果は動的であるため、列名を指定してテーブルを作成できません。「create table MyTable as(pivot selectstatement)」のようなメソッドはSQLサーバーで失敗するようです(「キーワード「AS」の近くの構文が正しくありません」)。SELECT --INTO --FROM構造を取得するために、以下のSQLをフォーマットしようとしましたが、失敗しました。どんな助けでも明らかに大歓迎です!
ピボットに使用されるSQLは次のとおりです(このすばらしいWebサイトのおかげで構築できます!):
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)