我有一個包含以下字段遞歸查詢
- Supervisorid
- EMPID表
這就像一個推薦計劃。一個傢伙可以參考他下面的3個傢伙ie,3指的是三個傢伙即4 5 8同樣4指的是9 10和11同樣8指的是12,13這樣去吧..
我想查詢得到Supervisor 3下的所有EmpId
我有一個包含以下字段遞歸查詢
這就像一個推薦計劃。一個傢伙可以參考他下面的3個傢伙ie,3指的是三個傢伙即4 5 8同樣4指的是9 10和11同樣8指的是12,13這樣去吧..
我想查詢得到Supervisor 3下的所有EmpId
您是否希望我們爲您編寫解決方案,或者解釋一下如何構建遞歸查詢?
IBM DB2紅皮書有一整章關於SQL遞歸。
要點是,下面的步驟一般涉及:
你定義了一個「種子」。 SELECT SUPID,EMPID,1 AS LVL FROM EMP WHERE SUPID = 3;
您分配給此名稱。使用SRC AS <您的種子在這裏>
您定義從種子開始,使用指定名稱轉到「下一級」的方法。 SELECT SRC.SUPID,F.EMPID,SRC.LVL + 1從SRC,EMP WHERE SRC.EMPID = EMP.SUPID
你把兩者結合起來(內WITH子句)與Src AS <你的種子在這裏> UNION ALL <其他選擇此處>
(可選)您可以定義要選擇的列。 SELECT EMPID,LVL FROM SRC。
即,你想擁有4,5,8,9,10,11,12,13,對吧? – phimuemue 2010-10-22 09:14:29
也許這可以幫助你:http://sackoverflow.com/questions/53108/is-it-possible-to-make-a-recursive-sql-query – phimuemue 2010-10-22 09:16:40
可能重複的[Sql Server2005查詢問題](http:///stackoverflow.com/questions/3993927/sql-server2005-query-problem) – 2010-10-22 13:03:22