【问题标题】:Pivot Table Error 56901 non-constant expression数据透视表错误 56901 非常量表达式
【发布时间】:2014-11-05 01:24:19
【问题描述】:

我需要使用employees2 表中的数据在Division_ID 作为行和Job_ID 作为列创建一个平均工资数据透视表。到目前为止,我有:

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

我收到错误,“pivot|unpivot values 不允许非常量表达式”

我做错了什么?我可以在网上找到的大多数示例都在 IN 语句之后处理数值,我是否需要做一些不同的事情,因为我正在使用文本/字符串?

【问题讨论】:

  • Job_ID 是 varchar 不是吗?将它们放在单引号中。 Job_ID IN ('ENG', 'TEC', 'MGR')

标签: sql oracle pivot


【解决方案1】:

使用下面的查询。

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 需要用单引号括起来才能被视为常量值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2012-10-09
    相关资源
    最近更新 更多