【发布时间】:2018-11-12 05:23:20
【问题描述】:
我正在编写一个递归 CTE,它获取所有员工及其经理的列表。到目前为止我有这个-
WITH GetEmployeeByManager as
(
--Anchor Query
SELECT FirstName, LastName, DepartmentID,ManagerEmployeeID
FROM dbo.Employees
WHERE ManagerEmployeeID IS NULL
Union ALL
--Recursive Query
SELECT FirstName, LastName, DepartmentID, ManagerEmployeeID
FROM dbo.Employees
WHERE ManagerEmployeeID IS NOT NULL
)
SELECT *
FROM GetEmployeeByManager
我需要能够有一个名为“经理名字”和“经理姓氏”的列,它从“经理员工 ID”列中获取每个值,并使用它从原始名称中找到正确的名字和姓氏员工表。我尝试了许多不同的策略,但似乎没有任何效果。有什么建议么?谢谢。
【问题讨论】:
-
这是很常见的查询:mssqltips.com/sqlservertip/5379/…
-
提示:您的递归查询(在联合之后)需要一个带有基本查询的
join。
标签: sql recursion common-table-expression