Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ORACLE SQL query显示其工资低于其经理但高于任何其他经理工资的员工_Sql_Database_Oracle11g_Oracle10g_Informatica Powercenter - Fatal编程技术网

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

使用ORACLE SQL query显示其工资低于其经理但高于任何其他经理工资的员工,sql,database,oracle11g,oracle10g,informatica-powercenter,Sql,Database,Oracle11g,Oracle10g,Informatica Powercenter,使用ORACLE SQL query显示其工资低于其经理但高于任何其他经理工资的员工我们需要了解您的数据结构才能回答此问题!您有哪些表,哪个表中有哪些相关字段,它们是如何链接的?使用自连接1 empno,ename,esalry.mgr empno=100,ename=A,esal=1000,mgr=101 2 empno=101,ename=B,esal=2000,mgr=102 3empno=102,ename=c,esal=3000,mgr=104等。我只能完成一半的查询,其中给出的员工薪

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

我们需要了解您的数据结构才能回答此问题!您有哪些表,哪个表中有哪些相关字段,它们是如何链接的?使用自连接1 empno,ename,esalry.mgr empno=100,ename=A,esal=1000,mgr=101 2 empno=101,ename=B,esal=2000,mgr=102 3empno=102,ename=c,esal=3000,mgr=104等。我只能完成一半的查询,其中给出的员工薪酬高于他们自己的经理,例如,从员工E1、员工E2中选择不同的E1.LAST_NAME、E1.salary、E2.LAST_NAME、E2.salary,其中E1.manager_ID=E2.EMPLOYEE_ID和E1.salary>E2.salary。但无法得到第二部分如何做比任何其他管理者的工资多很多。真的有助于完整的答案吗
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
       );