5
我目前正在运行CTE查询以递归方式从雇员表中构建雇员层次结构,类似于大多数递归示例演示的内容。我陷入困境的是,我正试图查询单个员工并检索他上方的层次结构。下面是我想要的工作表的例子有:SQL 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
我在哪里卡住是我无法弄清楚如何查询最低级别的员工Rob或Eric,并从Joe> John> Eric返回他上方的层次结构。似乎这应该很容易,但我无法在我的生活中发现它。
表例如在我的帖子,我想查询Eric和三个记录显示他的纪录,两个人比他返回一个记录。最终目标是对任何员工进行可疑查询,并将该员工的指挥链一直看到顶端。 – Tehrab 2011-03-03 23:36:49
我编辑给你埃里克和他的经理。 – 2011-03-03 23:52:38
永远是简单的东西。标记为已回答。 – Tehrab 2011-03-04 00:15:42