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
您可以发布数据吗? –