2016-09-14 102 views
0

我在我的PIVOT函數的語法上出現錯誤,無法找出原因。SQL Server中的PIVOt函數

我的查詢是:

SELECT Month_ID 
    ,Key 
    ,C.App_ID 
    ,APP_Name 
    FROM Usage C 
    INNER JOIN Applications B ON C.App_ID = B.App_ID 
    WHERE C.Key IN ('6853', 
    '6859', 
    '6861', 
    '6863', 
    '8580', 
    '8626', 
    '8639', 
    '8717', 
    '8721', 
    '8731', 
    '8737', 
    '8744', 
    '8754', 
    '8873', 
    '8876', 
    '8884', 
    '9014', 
    '9080', 
    '9083', 
    '9085', 
    '9097', 
    '9101', 
    '9115', 
    '9117', 
    '9353', 
    '9354', 
    '9358', 
    '9380', 
    '9383', 
    '9385', 
    '9411', 
    '9471', 
    '9514', 
    '9587', 
    '9594', 
    '9595', 
    '9598') 
PIVOT(MAX(B.App_ID) FOR App_NAME IN (
"Data Management Services", 
"intelliSource", 
"Price Performance", 
"Marketplace_Procure", 
"Spend Essentials", 
"Apt", 
"Prov")) AS PVT 

而且我不斷收到錯誤是:

消息156,級別15,狀態1,行38053 附近有語法錯誤關鍵字 'PIVOT'。

+0

請問您可以提供您的表格結構嗎? – vamsi

+0

你的表結構是什麼意思? –

+0

您的表格及其與列表名稱的關係 – vamsi

回答

2

編輯,因爲我沒有這個結構,我不能在我身邊測試它。如果你包含表格結構和數據,那麼對於接聽的人來說,這會減少工作量(以備將來參考)。

SELECT 
    * 
FROM 

(SELECT 
    Month_ID ,Key ,C.App_ID ,APP_Name 

FROM 
    Usage C 
    INNER JOIN Applications B ON C.App_ID = B.App_ID 
WHERE 
    C.Key IN ('6853', '6859', '6861', '6863', '8580', '8626', '8639', '8717', '8721', '8731', '8737', '8744', '8754', '8873', '8876', '8884', '9014', '9080', '9083', '9085', '9097', '9101', '9115', '9117', '9353', '9354', '9358', '9380', '9383', '9385', '9411', '9471', '9514', '9587', '9594', '9595', '9598') 
) as source 
PIVOT(MAX(B.App_ID) FOR App_NAME IN ("Data Management Services", "intelliSource", "Price Performance", "Marketplace_Procure", "Spend Essentials", "Apt", "Prov")) AS PVT 
+0

它仍然給我在PVT結束時的語法錯誤 –