2010-05-19 57 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