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


Функция Sum (построитель отчетов версии 3.0 и службы SSRS)

Возвращает сумму всех числовых значений, отличных от NULL, заданных выражением, вычисляемым для данной области.

ПримечаниеПримечание

В построителе отчетов и в конструкторе отчетов среды Business Intelligence Development Studio можно создавать и изменять определения отчета (RDL). В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в разделе Разработка отчетов в построителе отчетов и конструкторе отчетов 3.0 (SSRS) на веб-сайте microsoft.com.

Синтаксис

Sum(expression, scope, recursive)

Параметры

  • expression
    (Integer или Float) Выражение, к которому применяется статистическая обработка.

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

  • recursive
    (Перечислимый тип) Необязательный. Simple (по умолчанию) или RdlRecursive. Указывает, нужно ли выполнять статистическую обработку рекурсивно.

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

Возвращает значение типа Decimal для десятичных выражений и Double — для всех остальных выражений.

Замечания

Данные в наборе, указанном в выражении, должны иметь один и тот же тип. Чтобы преобразовать данные, имеющие разные числовые типы, к одному и тому же типу, используйте функции преобразования, такие как CInt, CDbl или CDec. Дополнительные сведения см. в разделе Функции преобразования типов.

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

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

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

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

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

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

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

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

Пример

Следующие 2 примера кода определяют общую сумму итогов элементов строки в группе Order или области данных.

=Sum(Fields!LineTotal.Value, "Order")
' or 
=Sum(CDbl(Fields!LineTotal.Value), "Order")

В матричной области данных с вложенными группами строк «Категория» и «Подкатегория» и вложенными группами столбцов «Год» и «Квартал» в ячейке, входящей в самую внутреннюю группу строк или столбцов, следующее выражение используется для вычисления максимального значения для всех кварталов для всех подкатегорий.

=Max(Sum(Fields!Sales.Value))