Это немного трудно объяснить словами... Я пытаюсь вычислить сумму сгруппированных разных значений в матрице. Допустим, у меня есть следующие данные, возвращенные SQL-запросом:
------------------------------------------------
| Group | ParentID | ChildID | ParentProdCount |
| A | 1 | 1 | 2 |
| A | 1 | 2 | 2 |
| A | 1 | 3 | 2 |
| A | 1 | 4 | 2 |
| A | 2 | 5 | 3 |
| A | 2 | 6 | 3 |
| A | 2 | 7 | 3 |
| A | 2 | 8 | 3 |
| B | 3 | 9 | 1 |
| B | 3 | 10 | 1 |
| B | 3 | 11 | 1 |
------------------------------------------------
В запросе есть и другие данные, но они не имеют значения. ParentProdCount специфичен для ParentID.
Теперь у меня есть матрица в MS Report Designer, в которой я пытаюсь вычислить сумму для ParentProdCount (сгруппированных по "Group"). Если я просто добавлю выражение
=Sum(Fields!ParentProdCount.Value)
я получу результат 20 для группы A и 3 для группы B, что неверно. Правильные значения должны быть 5 для группы A и 1 для группы B. Этого бы не произошло, если бы не было ChildID, но мне приходится использовать некоторые другие данные, специфичные для детей, в той же матрице.
Я пытался вложить агрегатные функции FIRST() и SUM(), но, по-видимому, невозможно иметь вложенные агрегатные функции, даже если у них определены диапазоны.
Я уверен, что есть какой-то способ вычислить сгруппированную отчетную сумму без необходимости создавать еще один SQL-запрос. У кого-нибудь есть идея, как это сделать?