2014-01-24 41 views
0

我有表呼叫Specf和我有一個視圖View1並使用這兩個我需要生成所需的輸出。如何在數據透視表中顯示SQL Server中的重複值

SPECf

P1 
P2 
P3 
P4 
P5 

View1

Product SPESET  SPECf   Value 
A1  ABCSET  P1   C1 
A1  ABCSET  P2   C2 
A1  XYZSET  P3   C2 
A2  ABXSET  P1   C1 
A2  ABXSET  P4   C4 
A2  ABXSET  P2   C1 
A3  CDESET  P5   C2 

輸出要求:

Product SPESET  SPE_P1 SPE_P2 SPE_P3 SPE_P4 SPE_P5 
A1  ABCSET  C1   C2  C2  null  null 
A1  ABCSET  C1   C2  C2  null  null 
A1  XYZSET  C1   C2  C2  null  null 
A2  ABXSET  C1   C1  null  c4  null 
A2  ABXSET  C1   C1  null  c4  null 
A2  ABXSET  C1   C1  null  c4  null 
A3  CDESET  null  null  null  null  c2 

回答

1
select V2.Product, 
     V2.SPESET, 
     P.P1 SPE_P1, 
     P.P2 SPE_P2, 
     P.P3 SPE_P3, 
     P.P4 SPE_P4, 
     P.P5 SPE_P5 
from (
     select V1.Product, V1.SPECf, V1.Value 
     from View1 as V1 
    ) as V1 
pivot (
     max(V1.Value) 
     for V1.SPECf in (P1, P2, P3, P4, P5) 
    ) as P 
inner join View1 as V2 
    on P.Product = V2.Product 
+0

我需要生成動態 – user2307049

+0

@user好了,是的,這是可能的。做一個動態數據透視的搜索,看看不同的方式來實現。最後需要的查詢是我在這個答案中提供的。 –