В настоящее время я получаю категории расходов, имеющие несколько родительских категорий, с их дочерними категориями и так далее.Для этого я использовал общее табличное выражение для применения рекурсии, но не смог получить желаемый результат.
Это результат, который я получаю
CId Tit Par
----------------------------------------------------------------
D61D6C22 Electricity Bill NULL
52113021 Wire Bill D61D6C22
E34B6F68 Wireless Bill D61D6C22
41A35796 B category Bill 52113021
D063745A A category Bill 52113021
Это запрос, который я использовал:
WITH cte1 AS
(
SELECT
Id AS [CId], Title as [Tit], ParentId as [Par],
RN = ROW_NUMBER() OVER (ORDER BY Title)
FROM
dbo.[ExpenseCategory]
WHERE
ParentId IS NULL
GROUP BY
Id, Title, ParentId
UNION ALL
SELECT
Id AS [CId], Title, ParentId, RN
FROM
cte1
INNER JOIN
dbo.[ExpenseCategory] ec ON cte1.[CId] = ec.ParentId
)
SELECT
cte1.[CId], [Tit],[Par]
FROM
cte1
ORDER BY
RN ASC
CId Tit Par
----------------------------------------------------------------
D61D6C22 Electricity Bill NULL
52113021 Wire Bill D61D6C22
41A35796 B category Bill 52113021
D063745A A category Bill 52113021
E34B6F68 Wireless Bill D61D6C22