2010-10-22 27 views
0

EXACT重複的Sql Server2005 query problem的Sql Server2005中的問題

我有一個包含以下字段

•Supervisorid •EMPID 這就像一個推薦計劃表。一個傢伙可以參考他下面的3個傢伙ie,3指的是三個傢伙即4 5 8同樣4指的是9 10和11同樣8指的是12,13這樣去吧..

我想查詢得到Supervisor 3下的所有EmpId

+3

如果你希望人們投資自己的時間回答你的問題,你應該花些時間在問這個問題。 – 2010-10-22 05:11:30

+1

** EXACT ** [Sql Server2005查詢問題]的副本(http://stackoverflow.com/questions/3993927/sql-server2005-query-problem) – 2010-10-22 05:43:47

回答

0

檢查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;