sql - 查询有问题

标签 sql oracle sqlplus

我想包括 dname、deptno、loc,加起来 ename 并将列标记为 Number_of_People 总结工资标签列 Total Salary 然后加入部门表,我只想为部门 30 做这件事

这是我得到的错误

SQL> select dname,deptno, loc, count(ename) as Number_of_People, sum(sal) as   Total_Salary from emp join dept on emp.deptno = dept.deptno group by dname,loc where  deptno =30;
 select dname,deptno, loc, count(ename) as Number_of_People, sum(sal) as Total_Salary from emp join dept on emp.deptno = dept.deptno group by dname,loc where deptno =30

                                                                   *
ERROR at line 1:
ORA-00933: SQL command not properly ended


SQL>

工作表;

 SQL> select empno, ename, job, mgr, hiredate,comm, deptno from emp;

 EMPNO ENAME      JOB              MGR HIREDATE        COMM     DEPTNO
 ---------- ---------- --------- ---------- --------- ---------- ----------
  7839 KING       PRESIDENT            17-NOV-81                    10
  7698 BLAKE      MANAGER         7839 01-MAY-81                    30
  7782 CLARK      MANAGER         7839 09-JUN-81                    10
  7566 JONES      MANAGER         7839 02-APR-81                    20
  7654 MARTIN     SALESMAN        7698 28-SEP-81       1400         30
  7499 ALLEN      SALESMAN        7698 20-FEB-81        300         30
  7844 TURNER     SALESMAN        7698 08-SEP-81          0         30
  7900 JAMES      CLERK           7698 03-DEC-81                    30
  7521 WARD       SALESMAN        7698 22-FEB-81        500         30
  7902 FORD       ANALYST         7566 03-DEC-81                    20
  7369 SMITH      CLERK           7902 17-DEC-80                    20

 EMPNO ENAME      JOB              MGR HIREDATE        COMM     DEPTNO
 ---------- ---------- --------- ---------- --------- ---------- ----------
  7788 SCOTT      ANALYST         7566 09-DEC-82                    20
  7876 ADAMS      CLERK           7788 12-JAN-83                    20
  7934 MILLER     CLERK           7782 23-JAN-82                    10

  14 rows selected.

表部;

  SQL> select * from dept;

  DEPTNO DNAME          LOC
  ---------- -------------- -------------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON

最佳答案

您需要将 where 子句放在 group by 子句之前。

尝试:

select dname,deptno, loc
, count(ename) as Number_of_People
, sum(sal) as   Total_Salary 
from emp join dept on emp.deptno = dept.deptno 
where deptno=30
group by dname,loc;

关于sql - 查询有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7425141/

相关文章:

mysql - 检索多个计数的 SQL 语句

SQL 字符串模糊匹配。数组还是串联?

sql - 体面的可视化 SQL 查询生成器

Oracle OLEDB 连接池和无效连接

SQL:如何在给定 id 的情况下选择下一个 id

sql - 在 select 语句中分类

Java JDBC - 如何使用 tnsnames.ora 连接到 Oracle

oracle - 如何在 Oracle SQL*Plus 中显示 LOB 列的完整内容?

sequence - 使用序列函数时出现“ORA-00928: missing SELECT keyword”错误

oracle - 如何让 SQL*Plus 创建在 create 语句中间带有空行的 View /表?