В настоящее время я выполняю запрос CTE для рекурсивного построения иерархии сотрудников из таблицы сотрудников, аналогично тому, что демонстрируют большинство рекурсивных примеров.Я застрял в том, что я пытаюсь запросить одного сотрудника и получить иерархию над ним.Ниже приведен пример таблицы, с которой я пытаюсь работать:
Employees
===========================================================================
EmployeeID MgrID Name
1 null Joe
2 1 John
3 2 Rob
4 2 Eric
Ниже приведен SQL, который позволяет отображать иерархию сверху вниз:
with employeeMaster as (
select p.EmployeeID, p.MgrID, p.Name
from Employees p
where p.MgrID is null
union all
select c.EmployeeID, c.MgrID, c.Name
from employeeMaster cte inner join Employees c on c.MgrID = cte.EmployeeID
)
select * from employeeMaster
ГдеЯ застрял в том, что не могу понять, как запросить сотрудника самого низкого уровня, Роба или Эрика, и вернуть иерархию над ним из Joe> John> Eric.Кажется, что это должно быть легко, но я не могу определить это на всю жизнь.