У меня есть нить дерева в одной таблице. Таблица представляет собой дерево категорий, которые могут быть вложены бесконечно. Каждая категория имеет столбец ProductCount, в котором указано, сколько продуктов находится непосредственно в категории (не суммируя дочерние категории).
Id | ParentId | Name | ProductCount
------------------------------------
1 | -1 | Cars | 0
2 | -1 | Bikes | 1
3 | 1 | Ford | 10
4 | 3 | Mustang | 7
5 | 3 | Focus | 4
Я хотел бы сделать sql-запрос, который для каждой строки/категории дает мне количество продуктов, включая те, в дочерних категориях.
Вывод для таблицы выше должен быть
Id | ParentId | Name | ProductCount | ProductCountIncludingChildren
--------------------------------------------------------------------------
1 | -1 | Cars | 0 | 21
2 | -1 | Bikes | 1 | 1
3 | 1 | Ford | 10 | 21
4 | 3 | Mustang | 7 | 7
5 | 3 | Focus | 4 | 4
Я знаю, что я, вероятно, должен использовать CTE, но не могу заставить его работать так, как надо.
Любая помощь приветствуется!