2016-11-15 9 views
0

私は私の出力がなりたいテーブル名TABLE1SQL Transpose Pivot? UnPivot?

Partnumber | Model  
12345  | A1  
12345  | B2  
12345  | C3 

を持っている:

Partnumber | Model1 | Model2 | Model3  
12345  | A1  | B2  | C3 

モデル列Nは、動的であることで。

アイデア?

+0

数百人を..... – scsimon

答えて

1

あなたはダイナミックな条件付きの集約使用することができますように、この例の

DECLARE @sql NVARCHAR(MAX) = N''; 

SELECT @sql = 
'SELECT 
    PartNumber' + CHAR(10) + 
    STUFF((
     SELECT DISTINCT 
      ' ,MAX(CASE WHEN Model = ''' + Model + ''' THEN Model END) AS ' + QUOTENAME(Model) + CHAR(10) 
     FROM Tbl 
     FOR XML PATH('') 
    ), 1, 0, '') + 
'FROM Tbl 
GROUP BY PartNumber;'; 

PRINT @sql; 
EXEC sp_executesql @sql;