У меня есть следующая таблица: сотрудники
employee emp_id manager manager_id
a 1 x 1
b 2 a 1
c 3 b 2
Я пытаюсь показать, что x 1 является топ-менеджером для a, b и c, даже если a 1 является менеджером b 2, а b 2 является c3-х менеджер.Вот что я пытаюсь сделать:
employee employee_id top_manager top_manager_id
a 1 x 1
b 2 x 1
c 3 x 1
Код, который я пробовал
WITH
report AS
(
SELECT employee, employee_id, top_manager, top_manager_id
FROM employees
UNION ALL
SELECT e.employee, e.employee_id, e.top_manager, e.top_manager_id
FROM dbo.employees e
INNER JOIN report r ON e.employee_id = r.top_manager_id
)
SELECT employee, employee_id, top_manager, top_manager_id
FROM report