2011-06-23 126 views
0

對於我的生活,我無法看到我在這裏做錯了什麼。SQL Server PIVOT問題

SELECT Series_ID 
     , 1 AS Jan 
     , 2 AS Feb 
     , 3 AS Mar 
     , 4 AS Apr 
     , 5 AS May 
     , 6 AS Jun 
     , 7 AS Jul 
     , 8 AS Aug 
     , 9 AS Sep 
     , 10 AS Oct 
     , 11 AS Nov 
     , 12 AS [Dec] 
FROM 
    (
    SELECT MONTH(ActionDate_DT) AS [MonthNum] 
     , Series_ID 
     , ID 
     FROM TasksSeries_V 
    WHERE Series_ID IN (5632751,5672397,5680669,5680670,5632713,5632752,5680902) 
      AND TasksSeries_V.ActionDate_DT BETWEEN '01 Jan 2011' AND '31 Dec 2011' 
) AS SourceTable 
PIVOT 
    (
COUNT(ID) FOR MonthNum IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]) 
) AS pvt 

當我運行此我只是得到

ID  Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
5632713 1 2 3 4 5 6 7 8 9 10 11 12 
5632751 1 2 3 4 5 6 7 8 9 10 11 12 
5632752 1 2 3 4 5 6 7 8 9 10 11 12 
5672396 1 2 3 4 5 6 7 8 9 10 11 12 
5672397 1 2 3 4 5 6 7 8 9 10 11 12 
5680669 1 2 3 4 5 6 7 8 9 10 11 12 
5680670 1 2 3 4 5 6 7 8 9 10 11 12 
5680902 1 2 3 4 5 6 7 8 9 10 11 12 

任何想法?

+1

請編輯您的問題,以表明您認爲查詢應該做什麼? – billinkc

回答

2

我認爲問題是,在第一個SELECT語句,你用前人的精力的[1]代替1爲列名..

SELECT Series_ID 
     , [1] AS Jan 
     , [2] AS Feb 
     , [3] AS Mar 
     , [4] AS Apr 
     , [5] AS May 
     , [6] AS Jun 
     , [7] AS Jul 
     , [8] AS Aug 
     , [9] AS Sep 
     , [10] AS Oct 
     , [11] AS Nov 
     , [12] AS [Dec] 
FROM 
    (
    SELECT MONTH(ActionDate_DT) AS [MonthNum] 
     , Series_ID 
     , ID 
     FROM TasksSeries_V 
    WHERE Series_ID IN (5632751,5672397,5680669,5680670,5632713,5632752,5680902) 
      AND TasksSeries_V.ActionDate_DT BETWEEN '01 Jan 2011' AND '31 Dec 2011' 
) AS SourceTable 
PIVOT 
    (
     COUNT(ID) 
     FOR MonthNum IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]) 
) AS pvt 
+0

哦,我知道這會是一些加重的事情。謝謝。 –

+0

不客氣! –

0

SELECT Series_ID, 1 AS Jan, 2 AS Feb, 3 AS Mar, 4 AS Apr, 5 AS May, 6 AS Jun, 7 AS Jul, 8 AS Aug, 9 AS Sep, 10 AS Oct, 11 AS Nov, 12 AS [Dec] 

表明我們應該選擇文字值爲1,別名爲Jan,文字值爲2,別名爲Feb ...相反,通過包裝在方括號或雙引號中引用名爲1的列

SELECT Series_ID, [1] AS Jan, [2] AS Feb, [3] AS Mar, [4] AS Apr, [5] AS May, [6] AS Jun, [7] AS Jul, [8] AS Aug, [9] AS Sep, [10] AS Oct, [11] AS Nov, [12] AS [Dec]