Как отобрать сотрудников, которые приняты на работу раньше своего руководителя?

Есть такая задача:

Используя таблицу 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
  );
→ Ссылка