Поделиться через


Агрегатная функция (построитель отчетов и службы SSRS)

Возвращает пользовательские статистические данные заданного выражения в соответствии с определением поставщика данных.

Примечание

Создавать и изменять определения отчетов (RDL-файлы) в SQL Server Data Tools можно в построителе отчетов и конструкторе отчетов В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в статье Проектирование отчетов в конструктор отчетов и Report Builder (SSRS) в Интернете по адресу microsoft.com.

Синтаксис

  
Aggregate(expression, scope)  

Параметры

expression
Выражение, к которому применяется статистическая обработка. Это выражение должно быть простой ссылкой на поле.

область
(String) Имя набора данных, группы или области данных, содержащих элементы отчета, к которым применяется агрегатная функция. ЗначениеScope должно быть строковой константой и не может быть выражением. Если аргумент scope не задан, используется текущая область.

Тип возвращаемых данных

Тип возвращаемых данных определяется поставщиком данных. Возвращает Nothing, если поставщик данных не поддерживает эту функцию или данные недоступны.

Комментарии

Функция Aggregate предоставляет способ использования статистических значений, вычисленных на внешнем источнике данных. Поддержка этой функции определяется модулем обработки данных. Например, модуль обработки данных служб SQL Server Analysis Services получает плоские наборы строк из запроса многомерных выражений. Некоторые строки результирующего набора могут содержать статистические значения, вычисленные на сервере источника данных. Они известны как серверные статистические значения. Чтобы просмотреть серверные статистические выражения в графическом конструкторе запросов служб Analysis Services, можно использовать кнопку Show Aggregate (Показать статистическое выражение) на панели инструментов. Дополнительные сведения см. в статье Пользовательский интерфейс конструктора запросов многомерных выражений служб Analysis Services.

При отображении сочетания значений статистического выражения и набора данных строк с подробными сведениями области данных табликса серверные статистические выражения обычно не отображаются, так как они не имеют подробных данных. Однако может потребоваться отображение всех значений, полученных для набора данных, и настройка способа вычисления и отображения статистических данных.

Reporting Services определяет использование Aggregate функции в выражениях в отчете, чтобы определить, следует ли отображать статистические выражения сервера в строках сведений. При включении функции Aggregate в выражение области данных серверные статистические выражения появляются только в строках группы «Итог» и «Общий итог», но не в строках с подробными сведениями. Если требуется отобразить серверные статистические данные в строках с подробными сведениями, не следует использовать функцию Aggregate.

Можно изменить поведение по умолчанию путем изменения значения параметра Рассматривать подытоги как строки детализации в диалоговом окне Свойства набора данных . При установке этого параметра в значение True все данные, включая серверные статистические выражения, отображаются как подробные данные. При установке на значение False серверные статистические значения отображаются как итоги. Установка этого свойства затрагивает все области данных, связанные с этим набором данных.

Примечание

Все вмещающие группы элемента отчета, ссылающегося на функцию Aggregate, должны иметь простые ссылки на поля для своих выражений групп, например [FieldName]. Нельзя использовать функцию Aggregate в области данных, использующую сложные выражения групп. Для модуля обработки данных служб SQL ServerAnalysis запрос должен включать поля многомерных выражений типа LevelProperty (не MemberProperty) для поддержки агрегирования с помощью Aggregateфункции .

Expression может содержать вызовы вложенных агрегатных функций со следующими условиями и исключениями.

  • ПараметрScope для вложенных агрегатов должен совпадать с областью внешнего агрегата или входить в нее. Одна область из всех уникальных областей в выражении должна быть дочерней относительно всех других областей.

  • ПараметрScope для вложенных агрегатов не может быть именем набора данных.

  • Выражение не должно содержать Firstфункции , Last, Previous, или RunningValue .

  • Expression не может содержать вложенные агрегаты, в которых указан параметр recursive.

Дополнительные сведения см. в статьях Функции построителя отчетов — справочник по агрегатным функциям в отчетах с разбивкой на страницы (построитель отчетов) и Область выражения для суммирования, статистических выражений и встроенных коллекций в отчете с разбивкой на страницы (построитель отчетов).

Дополнительные сведения о рекурсивных агрегатах см. в статье Создание групп рекурсивной иерархии в отчете с разбивкой на страницы (построитель отчетов).

Сравнение функций Aggregate и Sum

Функция Aggregate отличается от числовых агрегатных функций, например Sum, тем, что функция Aggregate возвращает значение, вычисленное поставщиком данных или модулем обработки данных. Числовые агрегатные функции, такие как Sum возвращают значение, вычисляемое обработчиком отчетов на наборе данных из набора данных, определяемого параметром область. Дополнительные сведения см. в списке агрегатных функций в статье Функции построителя отчетов — справочник по агрегатным функциям в отчетах с разбивкой на страницы (построитель отчетов).

Пример

В приведенном ниже примере кода показано выражение, получающее серверное статистическое значение для поля LineTotal. Выражение добавляется в ячейку строки, принадлежащей группе GroupbyOrder.

=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")  

См. также:

Использование выражений в отчетах (построитель отчетов и службы SSRS)
Примеры выражений (построитель отчетов и службы SSRS)
Типы данных в выражениях (построитель отчетов и службы SSRS)
Область выражения для итогов, агрегатных функций и встроенных коллекций (построитель отчетов и службы SSRS)