Сумма сгруппированных отдельных значений

Это немного трудно объяснить словами... Я пытаюсь вычислить сумму сгруппированных разных значений в матрице. Допустим, у меня есть следующие данные, возвращенные 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-запрос. У кого-нибудь есть идея, как это сделать?

5
задан miq 24 October 2011 в 14:22
поделиться