0
我有一個包含以下字段
•Supervisorid •EMPID 這就像一個推薦計劃表。一個傢伙可以參考他下面的3個傢伙ie,3指的是三個傢伙即4 5 8同樣4指的是9 10和11同樣8指的是12,13這樣去吧..
我想查詢得到Supervisor 3下的所有EmpId
我有一個包含以下字段
•Supervisorid •EMPID 這就像一個推薦計劃表。一個傢伙可以參考他下面的3個傢伙ie,3指的是三個傢伙即4 5 8同樣4指的是9 10和11同樣8指的是12,13這樣去吧..
我想查詢得到Supervisor 3下的所有EmpId
檢查this。它使用遞歸存儲過程,因此引用級別將受到限制。
非遞歸存儲過程調用solution。
隨着SQL2005,你可以使用遞歸查詢使用公用表表達式:
WITH Report(Supervisorid , Empid , Title, Level)
AS
(
-- Anchor member definition
SELECT e.Supervisorid , e.Empid , e.Title, 0 AS Level
FROM dbo.MyEmployees AS e
WHERE Supervisorid = 3
UNION ALL
-- Recursive member definition
SELECT e.Supervisorid , e.Empid , e.Title, Level + 1
FROM dbo.MyEmployees AS e
INNER JOIN Report AS d
ON e.Supervisorid = d.Empid
)
-- Statement that executes the CTE
SELECT Supervisorid , Empid , Title, Level
FROM Report;
如果你希望人們投資自己的時間回答你的問題,你應該花些時間在問這個問題。 – 2010-10-22 05:11:30
** EXACT ** [Sql Server2005查詢問題]的副本(http://stackoverflow.com/questions/3993927/sql-server2005-query-problem) – 2010-10-22 05:43:47