2015-06-10 57 views
0

我正在嘗試爲表格中的某些參數創建具有歷史數據的矩陣。問題是,當我嘗試旋轉它時,將無法工作。使用以下代碼(Un)在SQL上旋轉表格

SELECT concept, 
     [1] '1993', 
     <...>, 
     [23] '2015' 
    FROM 
     (SELECT concept, YEAR(begin_date) as year, value 
     FROM params p WITH(NOLOCK)) AS st 
    PIVOT 
    (
     SUM(value) 
     FOR year IN ([1], <...>, [23]) 
    ) AS pt 

將只返回一個滿值爲NULL的矩陣。在另一方面,我有使用此其他查詢

SELECT pt.year 'Year', 
     [1], 
     <...>, 
     [38] 
    FROM 
     (SELECT concept, YEAR(begin_date) as year, value 
     FROM parameters p WITH(NOLOCK)) AS st 
    PIVOT 
    (
     SUM(value) 
     FOR concept IN ([1], <...>, [38]) 
    ) AS pt 

正確的值,但隨後的列和行應該是周圍的其他方式。 這種情況的原因是什麼?它怎麼能解決? 在此先感謝

回答

0

您有:

year IN ([1], <...>, [23]) 

這大概應該是

year IN ([1993], <...>, [2015]) 

然後當然在選擇部分那些相同的列太:

SELECT concept, 
    [1993], 
    <...>, 
    [2015] 
+0

工作簡單完美!很難相信這個問題很清楚,之前沒有找到它......非常感謝! –