Я создаю отчет SSRS, и у меня возникли проблемы с выяснением, как его реализовать.
Во-первых, вот основная структура данных:
- Уровень 1а
- Уровень 2a
- Уровень 2b
- Уровень 2c
- Уровень 1b
- Уровень 1с
В базе данных каждый уровень имеет идентификатор и идентификатор родителя, где все родительские идентификаторы в корне (родители уровня 1) равны 0. Кроме того, каждый уровень имеет столбец с числовым значением. Например, я мог бы иметь:
Level1a
ParentId = 0
Id = 1
DataValue = 42
Level2a
ParentId = 1
Id = 2
DataValue = 1
В настоящее время я реализовал общее табличное выражение для получения иерархической структуры и уровней данных:
WITH cteTable(id, parentId, data, level) AS
(SELECT id,
parentId,
data,
1 AS level
FROM sampleTable
WHERE (parentId = 0)
UNION ALL
SELECT b.id,
b.parentId,
b.data,
c.level + 1 AS Expr1
FROM sampleTable AS b
INNER JOIN cteTable AS c ON b.parentId= p.id
)
SELECT id,
parentId,
data,
level
FROM cteTable
Таким образом, с примерами данных из ранее, результаты запроса будут:
+----+----------+------+-------+
| id | parentId | data | level |
|----+----------+------+-------+
| 1 | 0 | 42 | 1 |
| 2 | 1 | 1 | 2 |
+----+----------+------+-------+
Отсюда мне нужно создать отчет, который суммирует данные на корневом уровне. Например, в отчете будет показано, что сумма данных для идентификатора 1 равна 43. Одна вещь, которую я не знаю наверняка, - насколько глубоки уровни - в некоторых случаях не будет дочерних уровней, а в других - дерево. несколько уровней глубиной.
Есть два варианта, которые я сейчас рассматриваю. Одним из них является создание детализированного отчета, который будет показывать данные на каждом уровне с суммой, где это возможно. Например:
-Level1a SUM_LEVEL2_AND_LEVEL1a_DATA
Level2a DATA
Level2b DATA
-Level2c SUM_LEVEL3_AND_LEVEL2c_DATA
Level3a DATA
Level1b DATA
Level1c DATA
Другой способ - суммировать данные в корне и показать простую таблицу в отчете только с родительскими итогами. Например:
Level1a SUM_LEVEL1A_AND_ALL_CHILDREN_DATA
Level1b SUM_LEVEL1B_AND_ALL_CHILDREN_DATA
Level1c SUM_LEVEL1C_AND_ALL_CHILDREN_DATA
Кажется, я не могу понять, как получить детальный отчет, работая с выполненным мною поисковым запросом (здесь есть ссылка , которая кажется полезной, но я просто не мог заставить его работать).
Изменение схемы базы данных не вариант.
Кто-нибудь знает о каких-либо хороших ресурсах, которые я мог бы использовать, чтобы начать, или есть какие-либо идеи о том, как это сделать?
Дайте мне знать, если я что-то упустил ...