有沒有辦法將動態數據透視查詢的結果直接存儲到固定表中?因爲結果是動態的,我不能通過指定像「create table MyTable as(pivot select statement)」那樣的列名和方法來創建表「似乎在SQL服務器上失敗(」關鍵字'AS'附近的語法不正確「)。 我試圖格式化下面的SQL來得到一個SELECT - INTO - FROM結構,但是沒有這樣做。任何幫助顯然非常感謝!從動態數據透視結果在SQL Server上創建表
用於樞軸的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)
您是否嘗試過印刷'@ sql'而不是/在執行之前?構建的腳本是什麼樣的? –
嗨安德里, 我有,但也沒有得到它的工作。它是: SELECT * FROM(選擇的DateField,RefCode,SumField從MyTable的)p PIVOT ( 總和(SumField) FOR的DateField IN ([20110810],[20110815],...,[20110906],[ 20110907])) )作爲鏡頭 – Daan
而樞軸本身運行良好,它顯示了我想要什麼。我只想將結果存儲在表中,以便進一步編輯/連接其他數據透視表結果。 因爲這是一個必須在某個時候自動運行的任務,所以我不想先手動創建表,然後使用insert。 – Daan