【问题标题】:Display those employees whose salary is less than his manger but more than the salary of any other manager using ORACLE SQL query [closed]使用 ORACLE SQL 查询显示工资低于经理但高于任何其他经理工资的员工 [关闭]
【发布时间】:2016-03-09 13:42:05
【问题描述】:

使用 ORACLE SQL 查询显示工资低于其经理但高于任何其他经理工资的员工

【问题讨论】:

  • 我们需要知道你的数据结构来回答这个问题!你有哪些表格,哪个表格中有哪些相关字段,它们是如何链接的?
  • 使用自连接 1) empno,ename,esalry.mgr empno =100,ename=A,esal=1000,mgr=101 2) empno=101,ename=B,esal=2000,mgr = 102 3)empno = 102,ename =c,esal = 3000,mgr =104 等等。我只能完成一半的查询,这使员工的薪水高于自己的经理,例如 SELECT DISTINCT E1.LAST_NAME ,E1.SALARY,E2.LAST_NAME,E2.SALARY FROM EMPLOYEES E1,EMPLOYEES E2 WHERE E1.MANAGER_ID = E2.EMPLOYEE_ID AND E1.SALARY > E2.SALARY 。但无法获得第二部分如何做得比任何其他经理的薪水更多

标签: sql database oracle11g oracle10g informatica-powercenter


【解决方案1】:
WITH mgr_salaries ( empno, ename, esal, mgr, mgr_salary ) AS (
  SELECT empno,
         ename,
         salary,
         mgr,
         PRIOR salary
  FROM   Employees
  START WITH mgr IS NULL
  CONNECT BY PRIOR empno = mgr
)
SELECT *
FROM   mgr_salaries
WHERE  salary < mgr_salary
AND    NOT EXISTS (
         SELECT 1
         FROM   mgr_salaries x
         WHERE  x.mgr <> m.mgr
         AND    x.mgr_salary > m.salary
       );

【讨论】:

  • 非常感谢。真正帮助完整的答案
猜你喜欢
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 2011-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多