Ваша модель немного вводит в заблуждение, поскольку у вас есть две таблицы, которые связаны друг с другом, и вы хотите отображать записи только из одной.Это означает, что вы должны сделать 2 соединения в рекурсивной части, чтобы получить дочерние элементы связанной сущности.
Попробуйте выполнить следующее:
;WITH Recursion AS
(
-- Anchor
SELECT
ExecutorTaskId = E.Id,
RecursionLevel = 0
FROM
[Planning.ExecutorTasks] AS E
WHERE
E.ParentManagerTaskId = 6
UNION ALL
-- Further childs
SELECT
ExecutorTaskId = E.Id,
RecursionLevel = R.RecursionLevel + 1
FROM
Recursion AS R
INNER JOIN [Planning.ManagerTasks] AS M ON R.ExecutorTaskId = M.ParentExecutorTaskId
INNER JOIN [Planning.ExecutorTasks] AS E ON M.Id = E.ParentManagerTaskId
)
SELECT
R.RecursionLevel,
R.ExecutorTaskId
FROM
Recursion AS R
ORDER BY
R.RecursionLevel,
R.ExecutorTaskId
Я не могу проверить, если вы не предоставите примерные значения, ожидаемый результат и DDL таблицы.