Sql-Server-2005
使用樞軸按月交叉表查詢的銷售額
我正在嘗試使用 Sql Server 2005 中的 PIVOT 按月顯示銷售額。我知道這是一個常見問題,但我無法弄清楚我在這裡缺少什麼:
select ShippedYear, 1 as Jan, 2 as Feb from ( select datepart(year, ss.SHIPPED_DATE) as ShippedYear , ss.SHIPPED_AMOUNT as Amount , datepart(month, ss.SHIPPED_DATE)) as MonthCode from dbo.SALES_SHIPPER_LINE ssl join dbo.SALES_SHIPPER ss on ss.ID = ssl.SHIPPER_ID ) ps pivot( sum(amt) for MonthCode in (1,2,3,4,5,6,7,8,9,10,11,12) --this shows error?? ) piv;
我的數據透視表中的“in”子句出現錯誤。誰能告訴我我做錯了什麼?
由於您的新列是數字,因此您需要使用方括號對名稱進行轉義:
select ShippedYear, 1 as Jan, 2 as Feb from ( select datepart(year, ss.SHIPPED_DATE) as ShippedYear , ss.SHIPPED_AMOUNT as Amount , datepart(month, ss.SHIPPED_DATE)) as MonthCode from dbo.SALES_SHIPPER_LINE ssl join dbo.SALES_SHIPPER ss on ss.ID = ssl.SHIPPER_ID ) ps pivot( sum(amt) for MonthCode in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]) ) piv;
方括號
[]
用於分隔標識符。由於列名以數字開頭,因此必須對其進行分隔。有關詳細資訊,請參閱 MSDN。