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