2014-11-05 26 views
0

我需要創建一個數據透視表作爲行和Job_ID作爲列使用employees2表中的數據。到目前爲止,我有:數據透視表錯誤56901非常量表達式

SELECT * 
FROM (
SELECT Division_ID, Salary, Job_ID 
FROM Employees2 
) 
PIVOT (
AVG(Salary) FOR Job_ID IN (ENG, TEC, MGR) 
) 
ORDER BY Job_ID 

我得到的錯誤,「非常量表達式是不允許的支點| unpivot的價值觀」

我在做什麼錯?大多數我可以在網上找到的例子都是在IN語句之後處理Numerical values,我是否需要做一些不同的事情,因爲我正在處理文本/字符串?

+1

Job_ID是varchar不是嗎?把它們放在單引號中。 'Job_ID IN('ENG','TEC','MGR')' – Noel 2014-11-05 03:24:49

回答

1

在Query下面使用。

SELECT * FROM (
    SELECT Division_ID, Salary, Job_ID 
    FROM Employees2 
) 
PIVOT 
(
    AVG(Salary) FOR Job_ID IN 
    ('ENG', 'TEC', 'MGR')  ------------> Change done here..... 
) 
ORDER BY Job_ID 

ENGTECMGR需要用單引號包圍,以被認爲是恆定值。