数据透视表错误 56901 非常量表达式
Posted
技术标签:
【中文标题】数据透视表错误 56901 非常量表达式【英文标题】:Pivot Table Error 56901 non-constant expression 【发布时间】: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')
【参考方案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
值ENG
、TEC
和MGR
需要用单引号括起来才能被视为常量值。
【讨论】:
以上是关于数据透视表错误 56901 非常量表达式的主要内容,如果未能解决你的问题,请参考以下文章