2015-06-19 77 views
1

我有這樣的數據透視表:SQL服務器數據透視表列從其他表

select * 
from TEST_COUNT_LINE_IMP 
pivot (SUM (COUNT_CICLI) for Impiego in ([AT],[CL],[PD],[PR],[RC],[RW],[RV],[SP],[TR],[PV],[ST])) as T1 

名單:來自另一個表[AT],[CL],[PD],[PR],[RC],[RW],[RV],[SP],[TR],[PV],[ST]

SELECT AFCDIMPI 
FROM ANA_IMPIEGHI 

的問題是:

燦我用子查詢替換那個列表? 謝謝

回答

2

我認爲你應該在這種情況下使用動態查詢。我有一個這樣的例子,希望它能幫助你:

DECLARE @statement NVARCHAR(max) 
,@columns NVARCHAR(max) 

SELECT @columns = ISNULL(@columns + ', ', '') + '[' + tbl.ColName + ']' 
FROM (
    SELECT DISTINCT ColName 
    FROM TableName 
    ) AS tbl 

SELECT @statement = ' SELECT * FROM TableName as tbl PIVOT (MAX(tbl.VALUE) for tbl.ColName in (' + @columns + ')) as pvt' 

EXEC sp_executesql @statement = @statement 
+1

好的工作。即使可能最好手動添加列表。但你的回答正確! – Galma88

+0

謝謝!是的,最好避免這種情況,但有時你需要有這種能力;) –