Показать тех сотрудников, чья зарплата меньше, чем у его менеджера, но больше, чем зарплата любого другого менеджера с использованием запроса ORACLE SQLПоказать тех сотрудников, чья зарплата меньше, чем его ясли, но больше, чем зарплата любого другого менеджера с использованием запроса ORACLE SQL
-2
A
ответ
0
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
);
+0
Большое спасибо. Действительно помогите полностью ответить – JEYPRAGASH
Мы должны знать вашу структуру данных, чтобы ответить на это! Какие таблицы у вас есть, какие соответствующие поля находятся в таблице, как они связаны? – Jur
с использованием self join 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, СОТРУДНИКИ E2 ГДЕ E1.MANAGER_ID = E2.EMPLOYEE_ID И E1.SALARY> E2.SALARY. но не смог получить вторую часть, как сделать больше, чем зарплата любого другого менеджера. – JEYPRAGASH