2010-05-19 6 views
0

내가멀티 피벗

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

그렇게

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

내 쿼리 (아래로) 하나의 행으로 결과를 원하는 (아래로) 소스 데이터를 mutlipivot 위해 노력하고 있어요 멀리는

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