2010-05-19 45 views
0

我想mutlipivot源數據(如下)多樞轉單源數據

alt text http://img532.imageshack.us/img532/5418/sourcex.jpg

想要的結果爲單行(如下)

alt text http://img35.imageshack.us/img35/1517/expected.jpg

我的查詢,以便很遠是

SELECT * 
FROM (SELECT * 
     FROM  (SELECT NK, 
          DC, 
          VERSION, 
          GEV 
        FROM  MULTIPIVOT 
       ) SRC PIVOT (MAX(GEV) FOR DC IN ([10], [11], [12], [18])) AS PVT 
    ) SRC PIVOT (MAX([18]) FOR VERSION IN ([2006], [2007], [2008],[2009]))AS PVT 

哪個輸出結果

alt text http://img22.imageshack.us/img22/8703/resultos.jpg

是什麼讓這個作爲單列的方式嗎?

感謝

回答

0

我認爲,沒有在數據庫設計有一個缺點,如果你有兩個非常不同類型存儲在同一列中的值(一年及版本號)和邏輯某物應該和不應該出現在給定的列中有點朦朧,但是,有一種方法可以在單行中獲得想要的結果,假定奇數存儲是一致的。

Select NK 
    , Min(Case When DC = 10 Then GEV End) As [10] 
    , Min(Case When DC = 11 Then GEV End) As [11] 
    , Min(Case When DC = 12 Then GEV End) As [12] 
    , Min(Case When DC = 18 And Version = 2006 Then GEV End) As [2006] 
    , Min(Case When DC = 18 And Version = 2007 Then GEV End) As [2007] 
    , Min(Case When DC = 18 And Version = 2008 Then GEV End) As [2008] 
    , Min(Case When DC = 18 And Version = 2009 Then GEV End) As [2009] 
From Multipivot 
Group By NK