我希望对递归查询设置限制,但我不想失去最后一条我限制了递归的记录。
目前查询的样子是这样的:
经过经理Welcker限制,结果如下:
我希望把员工“Welcker”包含在内。问题是我只有需要列出的最后一个人的名字。命令结构下面有一些条目,但我不认识它们,也不想看到它们。
以下是我期望查询结果的示例。
非常感谢您的帮助。
目前查询的样子是这样的:
WITH MyCTE (EmployeeID, FirstName, LastName, ManagerID, level, SPECIAL)
AS (
SELECT a.EmployeeID, a.FirstName, a.LastName, a.ManagerID, 0 as Level
FROM MyEmployees as a
WHERE ManagerID IS NULL
UNION ALL
SELECT b.EmployeeID, b.FirstName, b.LastName, b.ManagerID, level + 1
FROM MyEmployees as b
INNER JOIN MyCTE ON b.ManagerID = MyCTE.EmployeeID
WHERE b.ManagerID IS NOT NULL and b.LastName != 'Welcker'
)
SELECT *
FROM MyCTE
OPTION (MAXRECURSION 25)
经过经理Welcker限制,结果如下:
EmployeeID; FirstName; LastName; ManagerID; level
1 Ken Sánchez NULL 0
我希望把员工“Welcker”包含在内。问题是我只有需要列出的最后一个人的名字。命令结构下面有一些条目,但我不认识它们,也不想看到它们。
以下是我期望查询结果的示例。
EmployeeID FirstName LastName ManagerID level
1 Ken Sánchez NULL 0
273 Brian Welcker 1 1
非常感谢您的帮助。