У меня есть отчет в SSRS 2008 с двумя группировками строк. Самый низкий уровень детализации сгруппирован по юридическим делам, а затем есть итоговая строка, сгруппированная по имени внешнего юриста. Запрос в наборе данных фактически возвращает записи с более низкой детализацией, чем эти две группы, он возвращает отдельные платежи по счетам по судебным делам. Таким образом, по каждому судебному делу необходимо оплатить много счетов, а каждому внешнему юристу - много судебных дел. Последний столбец, который я пытаюсь отобразить, - это оценка внешнего юриста, равная 1 баллу для каждого судебного дела. Оценка отображается нормально для строк с подробностями, но когда я пытаюсь выполнить агрегирование (сумму или среднее значение), агрегирование происходит некорректно. Он подсчитывает баллы за каждый платеж по счету, а не в судебном порядке. Так, например, если в судебном деле один внешний консультант получил 10 баллов и оплатил 3 счета, для этого судебного дела было бы назначено 3 10, а не только 1. Есть ли способ, которым я могу определить группу по утверждению в моем сводное утверждение, чтобы сгруппировать оценки внешнего юриста по юридическим делам, а не по оплате счетов?
Попытка использовать оператор group by в агрегате в построителе отчетов SSRS 2008
Ответы (2)
Ваши группировки по уровням. Поэтому, если у вас есть родительская группа, вы должны выбрать опцию «добавить заголовок группы». Тогда у вас будут данные о новой строке. Тогда вы можете провести там свой расчет, и он правильно сгруппирует совокупные данные.
EG:
Это не сработает:
Single Line: Group1Data, DetailData, Sum(DetailData)
Он просто повторит DetailData дважды, поскольку уровень детализации такой же, как и у группы.
Это должно сработать, если ваша группировка сделана правильно:
Header Line: Group1Data, Sum(DetailData)
Detail Line: (blank) , DetailData
У вас может быть МНОГО строк заголовка, например, по одной для каждого случая. Но детали внизу определяются определением группы и каждый раз будут отображаться только для этой группы. Это также может работать на нескольких уровнях группирования.
Поскольку это значение скопировано, вы должны использовать агрегат First ().