SQL CTE递归:返回父记录
我目前正在运行CTE查询,以递归方式从employees表构建员工层次结构,类似于大多数递归示例所演示的。我被困的地方是我正在尝试查询单个员工并检索他上面的层次结构。下面是我尝试使用的表的示例:
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
我陷入困境的是,我无法弄清楚如何查询最低级别的员工,无论是Rob还是Eric,并从Joe> John> Eric返回他上面的层次结构。似乎这应该很容易,但我无法发现它的生命。
没有找到相关结果
已邀请:
1 个回复
你换