我創造了各種各樣的狀態圖與數據存儲在一個簡單的自我引用表(JobPath)遞歸查詢的自我參照表(未分級)
JobId - ParentJobId
我使用的是標準的SQL CTE用以下數據得到哪些直到我結束了在正常使用的數據現在
JobId - ParentId
1 2
2 3
3 4
4 2
,你可以看到工作4個鏈接招聘2都到招聘3,然後到作業4等。
有沒有什麼辦法可以告訴我的查詢不要提取已有的數據?
這裏是我當前的查詢
WITH JobPathTemp (JobId, ParentId, Level)
AS
(
-- Anchor member definition
SELECT j.JobId, jp.ParentJobId, 1 AS Level
FROM Job AS j
LEFT OUTER JOIN dbo.JobPath AS jp
ON j.JobId = jp.JobId
where j.JobId=1516
UNION ALL
-- Recursive member definition
SELECT j.JobId, jp.ParentJobId, Level + 1
FROM dbo.Job as j
INNER JOIN dbo.JobPath AS jp
ON j.JobId = jp.JobId
INNER JOIN JobPathTemp AS jpt
ON jpt.ParentId = jp.JobId
WHERE jp.ParentJobId <> jpt.JobId
)
- 語句執行的CTE
SELECT * FROM JobPathTemp
你的查詢是什麼樣的?你不能使用Distinct? – Kell 2011-01-07 11:00:01
「遞歸公用表表達式'JobPathTemp'的遞歸部分不允許使用DISTINCT運算符。」 – 2011-01-07 11:33:00