Это немного сложно объяснить словами ... Я пытаюсь вычислить сумму сгруппированных различных значений в матрице. Допустим, у меня есть следующие данные, возвращаемые 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 (сгруппированную по «Группе»). Если я просто добавлю выражение
=Sum(Fields!ParentProdCount.Value)
Я получаю результат 20 для группы A и 3 для группы B, что неверно. Правильные значения должны быть 5 для группы A и 1 для группы B. Этого не произошло бы, если бы не был задействован ChildID, но я должен использовать некоторые другие данные, специфичные для ребенка, в той же матрице.
Я пытался вложить агрегатные функции FIRST () и SUM (), но, очевидно, невозможно иметь вложенные агрегирующие функции, даже когда у них определены области действия.
Я почти уверен, что есть какой-то способ вычислить сгруппированную отдельную сумму без необходимости создания другого SQL-запроса. У кого-нибудь есть идеи, как это сделать?