Буду признателен за любую помощь в том, как получить итоги по родителям и их детям.У меня есть две таблицы Units и UnitValues, одна имеет родительские и дочерние отношения, а вторая имеет только дочерние и родительские идентификаторы со связанными значениями.Мне нужно получить таблицу, которая вычисляет сумму для данного родителя и всех его детей.
Я пробовал следующее
;WITH tbl AS(
SELECT ParentUnit,
Sum(Value) AS Population,
Sum(CASE WHEN Mark IN ('A','B') THEN Value ELSE 0 END) AS Mark
FROM [TestDB].[dbo].[UnitValues] uv
INNER JOIN [TestDB].[dbo].[Units] u
On u.UnitID = uv.UnitID
Group By ParentUnit
)
select *
from tbl
where ParentUnit IN ('1TTTTT','2KKKKK')
Это дает неверный результат.Количество должно быть 6 вместо 2 для 2KKKKK и 15 вместо 9 для 1TTTTT.
+--------+-------------------+--------+
| Unit | Population | Mark |
+--------+-------------------+--------+
| 1TTTTT | 9 | 9 |
| 2KKKKK | 2 | 2 |
+--------+-------------------+--------+
Таблица единиц измерения
+--------+----------+------------+
| UnitID | Name | ParentUnit |
+--------+----------+------------+
| 1TTTTT | Unit | NULL |
| 2KKKKK | Unit 1 | 1TTTTT |
| 2LLLLL | Unit 2 | 1TTTTT |
| 2NNNNN | Unit 3 | 1TTTTT |
| 3KKKKG | Unit 1.2 | 2KKKKK |
| 3KKKKS | Unit 1.1 | 2KKKKK |
| 3LLLLL | Unit 2.1 | 2LLLLL |
| 4LLLLL | Unit 2.2 | 3LLLLL |
| 5LLLLL | Unit 2.3 | 4LLLLL |
+--------+----------+------------+
Таблица единиц измерения
+-----+--------+---------+-------+------+
| ID | UnitID | OtherId | Value | Mark |
+-----+--------+---------+-------+------+
| T12 | 1TTTTT | GGGGGG | 1 | |
| T22 | 2KKKKK | RRRRRR | 1 | A |
| T23 | 2KKKKK | RRRRRR | 1 | A |
| T24 | 2KKKKK | RRRRRR | 1 | B |
| T25 | 2KKKKK | RRRRRR | 1 | A |
| T31 | 2LLLLL | HHHHHH | 1 | A |
| T32 | 2LLLLL | HHHHHH | 1 | A |
| T33 | 2LLLLL | HHHHHH | 1 | B |
| T41 | 2NNNNN | HHHHHH | 1 | A |
| T42 | 2NNNNN | HHHHHH | 1 | A |
| T51 | 3KKKKG | BBBBBB | 1 | A |
| T52 | 3KKKKS | BBBBBB | 1 | A |
| T61 | 3LLLLL | BBBBBB | 1 | A |
| T71 | 4LLLLL | BBBBBB | 1 | A |
| T81 | 5LLLLL | BBBBBB | 1 | A |
+-----+--------+---------+-------+------+