多维数据集 SQL ORA-00936 缺少表达式
Posted
技术标签:
【中文标题】多维数据集 SQL ORA-00936 缺少表达式【英文标题】:Cube SQL ORA-00936 missing expression 【发布时间】:2020-10-15 03:15:42 【问题描述】:我尝试在我的查询中使用多维数据集,但它没有用 这是我的查询
select department_id, job_id , salary/12 as "monthly_salary"
from employees
where department_id
(select department_id from departments)
group by cube(department_id,job_id)
order by department_id,job_id;
通过使用 2 个表,即员工和部门 如果我问的太多,请原谅我,我还是新手:)
【问题讨论】:
以表格格式提供一些示例数据和您的预期输出 什么不起作用? 【参考方案1】:不完全确定您在问什么,但这里有一个立方体示例,可通过 deptno、job 以及两者的组合来获取总数
SQL> select deptno,job,sum(sal) from scott.emp
2 group by CUBE(deptno,job)
3 order by deptno,job;
DEPTNO JOB SUM(SAL)
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400
ANALYST 6000
CLERK 4150
MANAGER 8275
PRESIDENT 5000
SALESMAN 5600
29025
【讨论】:
【参考方案2】:你不见了
IN
关键字(部门列表)
SUM
工资函数
我添加了ROUND
,让它看起来更漂亮
所以:
SELECT department_id,
job_id,
ROUND (SUM (salary) / 12) monthly_salary
FROM employees
WHERE department_id IN (SELECT department_id FROM departments)
GROUP BY CUBE (department_id, job_id)
ORDER BY department_id, job_id
【讨论】:
以上是关于多维数据集 SQL ORA-00936 缺少表达式的主要内容,如果未能解决你的问题,请参考以下文章
什么可能导致 ORA-00936 - 缺少以下 sql 的表达式?
ORA-06550:第 12 行,第 9 列:PL/SQL:ORA-00936:缺少表达式 ORA-06550:第 9 行,第 5 列:PL/SQL:忽略 SQL 语句