列出一名员工的所有列(部门,雇员,薪水表)

毛躁的

我正在使用ORACLE的Emp / Dept数据库。如果有人不知道,则为以下结构:

 CREATE TABLE EMP
           (EMPNO NUMBER(4) NOT NULL,
            ENAME VARCHAR2(10),
            JOB VARCHAR2(9),
            MGR NUMBER(4),
            HIREDATE DATE,
            SAL NUMBER(7, 2),
            COMM NUMBER(7, 2),
            DEPTNO NUMBER(2));

    INSERT INTO EMP VALUES
            (7369, 'SMITH',  'CLERK',     7902,
            TO_DATE('17-MAR-1980', 'DD-MON-YYYY'),  800, NULL, 20);
    INSERT INTO EMP VALUES
            (7499, 'ALLEN',  'SALESMAN',  7698,
            TO_DATE('20-MAR-1981', 'DD-MON-YYYY'), 1600,  300, 30);
    INSERT INTO EMP VALUES
            (7521, 'WARD',   'SALESMAN',  7698,
            TO_DATE('22-MAR-1981', 'DD-MON-YYYY'), 1250,  500, 30);
    INSERT INTO EMP VALUES
            (7566, 'JONES',  'MANAGER',   7839,
            TO_DATE('2-MAR-1981', 'DD-MON-YYYY'),  2975, NULL, 20);
    INSERT INTO EMP VALUES
            (7654, 'MARTIN', 'SALESMAN',  7698,
            TO_DATE('28-MAR-1981', 'DD-MON-YYYY'), 1250, 1400, 30);
    INSERT INTO EMP VALUES
            (7698, 'BLAKE',  'MANAGER',   7839,
            TO_DATE('1-MAR-1981', 'DD-MON-YYYY'),  2850, NULL, 30);
    INSERT INTO EMP VALUES
            (7782, 'CLARK',  'MANAGER',   7839,
            TO_DATE('9-MAR-1981', 'DD-MON-YYYY'),  2450, NULL, 10);
    INSERT INTO EMP VALUES
            (7788, 'SCOTT',  'ANALYST',   7566,
            TO_DATE('09-MAR-1982', 'DD-MON-YYYY'), 3000, NULL, 20);
    INSERT INTO EMP VALUES
            (7839, 'KING',   'PRESIDENT', NULL,
            TO_DATE('17-MAR-1981', 'DD-MON-YYYY'), 5000, NULL, 10);
    INSERT INTO EMP VALUES
            (7844, 'TURNER', 'SALESMAN',  7698,
            TO_DATE('8-MAR-1981', 'DD-MON-YYYY'),  1500,    0, 30);
    INSERT INTO EMP VALUES
            (7876, 'ADAMS',  'CLERK',     7788,
            TO_DATE('12-MAR-1983', 'DD-MON-YYYY'), 1100, NULL, 20);
    INSERT INTO EMP VALUES
            (7900, 'JAMES',  'CLERK',     7698,
            TO_DATE('3-MAR-1981', 'DD-MON-YYYY'),   950, NULL, 30);
    INSERT INTO EMP VALUES
            (7902, 'FORD',   'ANALYST',   7566,
            TO_DATE('3-MAR-1981', 'DD-MON-YYYY'),  3000, NULL, 20);
    INSERT INTO EMP VALUES
            (7934, 'MILLER', 'CLERK',     7782,
            TO_DATE('23-MAR-1982', 'DD-MON-YYYY'), 1300, NULL, 10);

    CREATE TABLE DEPT
           (DEPTNO NUMBER(2),
            DNAME VARCHAR2(14),
            LOC VARCHAR2(13) );

    INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
    INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');
    INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');
    INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

    CREATE TABLE SALGRADE
            (GRADE NUMBER,
             LOSAL NUMBER,
             HISAL NUMBER);

    INSERT INTO SALGRADE VALUES (1,  700, 1200);
    INSERT INTO SALGRADE VALUES (2, 1201, 1400);
    INSERT INTO SALGRADE VALUES (3, 1401, 2000);
    INSERT INTO SALGRADE VALUES (4, 2001, 3000);
    INSERT INTO SALGRADE VALUES (5, 3001, 9999);

我需要在一个查询中列出一位雇员的所有列(假设为KING)。一切都会很容易,但是有一个Salgrade表,我不知道该如何与其他人链接...我正在尝试类似的操作,但是它不起作用...

SELECT e.Empno, e.Ename, e.Job, e.Mgr, e.Hiredate, e.Sal, e.Comm, e.Deptno, d.Dname, d.Loc, s.Grade
FROM Emp e, Salgrade s
INNER JOIN Dept d ON d.Deptno=e.Deptno
WHERE e.Ename = 'KING' AND e.Sal BETWEEN s.Losal AND s.Hisal
专线小巴

您正在沿着不等式条件上的联接走上正确的轨道Salgrade但是,您绝对不应混合使用隐式联接和显式联接。他们的评估顺序不同,因此导致难以调试的失败。您的查询产生错误:

ORA-00904: "E"."DEPTNO": invalid identifier

实际上,请始终使用标准的显式联接(带有on关键字)。

应该这样做:

SELECT e.Empno, e.Ename, e.Job, e.Mgr, e.Hiredate, e.Sal, e.Comm, e.Deptno, d.Dname, d.Loc, s.Grade
FROM Emp e
INNER JOIN Dept d ON d.Deptno=e.Deptno
INNER JOIN Salgrade s ON e.Sal BETWEEN s.Losal AND s.Hisal
WHERE e.Ename = 'KING'

DB Fiddle上的演示

EMPNO | ENAME | 工作机会 MGR | 聘用| SAL | 通讯| DEPTNO | DNAME | LOC | 等级
----:| :---- | :-------- | ---::-------- | ---:---:-----:| :--------- | :------- | ----:
 7839 | KING | 总统 | | 81年3月17日| 5000 | | 10 | 会计| 纽约| 5

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查询以统计员工并显示拥有一名以上员工的部门

来自分类Dev

员工部门的唯一名称

来自分类Dev

无法创建一个列出所有“位置”以及这些部门中“部门”数量和“员工”数量的视图

来自分类Dev

列出第二列的所有公共值,然后在mysql中的第一个值中列出唯一名称

来自分类Dev

在一个部门的所有项目中工作的员工

来自分类Dev

在一个查询中按部门将薪水插入部门表中,该部门与雇员表链接

来自分类Dev

列出薪水相同的员工

来自分类Dev

如何找到每个部门的平均工资和每个部门中薪水最高的2名员工?

来自分类Dev

如何显示部门(一次)和在该部门工作的所有员工的列表?

来自分类Dev

如何显示部门(一次)和在该部门工作的所有员工的列表?

来自分类Dev

我应该写什么查询来从薪水表计算雇员的累积薪水

来自分类Dev

我试图列出所有薪水高于平均薪水的导师姓名,并显示薪水比平均薪水高多少

来自分类Dev

如何列出所有Presto员工?

来自分类Dev

如何显示员工详细信息以及所有员工的薪水?

来自分类Dev

SQL-试图使员工的薪水高于部门平均工资

来自分类Dev

在 SQL 中查找每个部门员工的最高薪水

来自分类Dev

按部门分组的前2名薪水

来自分类Dev

如何返回所有没有女员工的部门和男员工的数量

来自分类Dev

列出每个部门中最近雇用的员工

来自分类Dev

如何计算所有列中的唯一值并将它们显示在带有唯一名称的单独数据框中?

来自分类Dev

列出部门和平均薪水按平均升序排列

来自分类Dev

查询以检索与一名学生相同班级的所有学生

来自分类Dev

根据不同字段中的最新值选择所有唯一名称

来自分类Dev

查询以检索与一名学生相同班级的所有学生

来自分类Dev

在不同的聊天中获得一名用户的所有对话MYSQL

来自分类Dev

查询以输出客户和员工及其城市,其中每个城市必须至少包含一名客户和一名员工

来自分类Dev

我如何通过abap内部表计算所有员工的平均薪水?

来自分类Dev

已申请但为一名特定员工返回的集团 DAX 平均值?

来自分类Dev

使用dplyr重命名具有唯一名称的多列的快速方法

Related 相关文章

  1. 1

    查询以统计员工并显示拥有一名以上员工的部门

  2. 2

    员工部门的唯一名称

  3. 3

    无法创建一个列出所有“位置”以及这些部门中“部门”数量和“员工”数量的视图

  4. 4

    列出第二列的所有公共值,然后在mysql中的第一个值中列出唯一名称

  5. 5

    在一个部门的所有项目中工作的员工

  6. 6

    在一个查询中按部门将薪水插入部门表中,该部门与雇员表链接

  7. 7

    列出薪水相同的员工

  8. 8

    如何找到每个部门的平均工资和每个部门中薪水最高的2名员工?

  9. 9

    如何显示部门(一次)和在该部门工作的所有员工的列表?

  10. 10

    如何显示部门(一次)和在该部门工作的所有员工的列表?

  11. 11

    我应该写什么查询来从薪水表计算雇员的累积薪水

  12. 12

    我试图列出所有薪水高于平均薪水的导师姓名,并显示薪水比平均薪水高多少

  13. 13

    如何列出所有Presto员工?

  14. 14

    如何显示员工详细信息以及所有员工的薪水?

  15. 15

    SQL-试图使员工的薪水高于部门平均工资

  16. 16

    在 SQL 中查找每个部门员工的最高薪水

  17. 17

    按部门分组的前2名薪水

  18. 18

    如何返回所有没有女员工的部门和男员工的数量

  19. 19

    列出每个部门中最近雇用的员工

  20. 20

    如何计算所有列中的唯一值并将它们显示在带有唯一名称的单独数据框中?

  21. 21

    列出部门和平均薪水按平均升序排列

  22. 22

    查询以检索与一名学生相同班级的所有学生

  23. 23

    根据不同字段中的最新值选择所有唯一名称

  24. 24

    查询以检索与一名学生相同班级的所有学生

  25. 25

    在不同的聊天中获得一名用户的所有对话MYSQL

  26. 26

    查询以输出客户和员工及其城市,其中每个城市必须至少包含一名客户和一名员工

  27. 27

    我如何通过abap内部表计算所有员工的平均薪水?

  28. 28

    已申请但为一名特定员工返回的集团 DAX 平均值?

  29. 29

    使用dplyr重命名具有唯一名称的多列的快速方法

热门标签

归档