Как отобрать сотрудников, которые приняты на работу раньше своего руководителя?
Есть такая задача:
Используя таблицу HR.EMPLOYEES, отобразить данные о сотрудниках (EMPLOYEE_ID, FIRST_NAME, LAST_NAME), каждый из которых принят на работу раньше своего прямого руководителя (MANAGER_ID). При формировании списка ограничиться департаментами с номерами 30, 40, 50 и 70.
EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
100 Steven King SKING 515.123.4567 17-JUN-03 AD_PRES 24000 - - 90
Я попробовал сделать так, но он даже ничего не выводит, как можно реализовать правильно?
select first_name, last_name from hr.employees
where hire_date >
select(hire_date from hr.employees
where manager_id = (select manager_id from hr.employees)
)
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Выбираем нужные поля пол условию:
Номера департаментов 30, 40, 50, 70
Дата приема на работу меньше, чем у руководителя. Дату приема на работу руководителя получаем вложенным запросом по условию, MANAGER_ID работника = EMPLOEE_ID сотрудника(руководителя).
select
emp.EMPLOYEE_ID
, emp.FIRST_NAME
, emp.LAST_NAME
from hr.employees emp
where emp.DEPARTMENT_ID in (30, 40, 50, 70)
AND emp.hire_date < (select hire_date from hr.employees man
where man.EMPLOYEE_ID = emp.MANAGER_ID
);