0
我需要創建一個CTE腳本,以便能夠選擇一名特定員工下的員工,並且能夠將父級包括在列表中。使用CTE的父子關係Sql Server
例如我有僱員123有三名僱員在他下面,111,222和333,我有一個已經創建了三個層次的視圖,用戶點擊123,應該能夠看到111,222和333,我也想包括123的信息。
我應該能夠從任何節點開始獲取此信息,我的問題是也包括起始節點。
下面是代碼:
declare @Personnel AS TABLE
(
child_id INT NOT NULL PRIMARY KEY,
parent_id INT
);
INSERT INTO @Personnel(child_id, parent_id)
SELECT 111, 123 UNION ALL
SELECT 222, 123 UNION ALL
SELECT 333, 123
;WITH ChildsCTE(child_id, parent_id) AS
(
SELECT child_id, parent_id
FROM @Personnel
WHERE parent_id = 123
UNION ALL
SELECT Curr.child_id, Curr.parent_id
FROM ChildsCTE AS Prev
INNER JOIN
@Personnel AS Curr
ON Curr.parent_id = Prev.child_id
)
SELECT C.child_id, C.parent_id
FROM ChildsCTE AS C
我希望能夠檢索:
child_id parent_id
111 123
222 123
333 123
加上這樣以某種方式父:
child_id parent_id
111 123
222 123
333 123
123 123 (or NULL)
父是不是頂級員工,可以是任何人,當然也可以是頂級員工。
該查詢似乎工作正常。你能否包括表格數據和預期的輸出? –
它工作正常,但我需要能夠包括在孩子的名單,父母以及,例如,如果我點擊父母我想去,並帶來與他下的人包括他的所有電子郵件。這就是目標 – rgx71
您可以發佈數據嗎? –