多维数据集 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-00936: 缺少表达式

ORA-06550:第 12 行,第 9 列:PL/SQL:ORA-00936:缺少表达式 ORA-06550:第 9 行,第 5 列:PL/SQL:忽略 SQL 语句

出现错误 ORA-00936: 缺少表达式

Oracle CASE WHEN - ORA-00936:缺少表达式

ORA 00936 缺少表达式