按照数据访问接口的定义返回指定表达式的自定义聚合。
注释
可以在报表生成器和 SQL Server Data Tools 中的报表设计器中创建和修改报表定义(.rdl)。 每个创作环境提供了创建、打开和保存报表和相关项的不同方法。 有关详细信息,请参阅 microsoft.com Web 上的 报表设计器和报表生成器(SSRS)中设计报表 。
语法
Aggregate(expression, scope)
参数
expression
要对其执行聚合的表达式。 该表达式必须是简单字段引用表达式。
作用域
(String) 包含要向其应用聚合函数的报表项的数据集、组或数据区域的名称。
范围 必须是字符串常量,不能是表达式。 如果未指定 scope ,则使用当前作用域。
返回类型
返回类型视数据访问接口而定。 如果数据提供程序不支持此函数或数据不可用,则返回 Nothing 。
注解
该 Aggregate 函数提供了一种使用在外部数据源上计算的聚合的方法。 是否支持此功能由数据扩展插件决定。 例如,SQL Server Analysis Services 数据处理扩展插件从 MDX 查询中检索平展行集。 结果集中的某些行可能包含在数据源服务器上计算的聚合值。 这些聚合值称为“服务器聚合” 。 若要在 Analysis Services 的图形查询设计器中查看服务器聚合,可以使用工具栏上的“显示聚合”按钮。 有关详细信息,请参阅 Analysis Services MDX 查询设计器用户界面(报表生成器)。
在 Tablix 数据区域的详细信息行中显示聚合和详细信息数据集值的组合时,服务器聚合通常不会包括在内,因为它们不是详细信息数据。 但是,您可能希望显示从该数据集中检索到的所有值,并自定义聚合数据的计算方式和显示方式。
Reporting Services 在您的报表中的表达式中检测 Aggregate 函数的使用,以判断是否在详情行上显示服务器汇总。 如果在数据区域中的表达式中包括 Aggregate,则服务器聚合只能显示在组总计行或汇总行上,而不能显示在详细信息行上。 如果要在详细信息行上显示服务器聚合,请不要使用函数 Aggregate 。
可以通过更改 “将小计行解释为详细信息” 选项(位于 “数据集属性” 对话框)的值,来更改此默认行为。 如果此选项设置为 True,则所有数据(包括服务器聚合)显示为详细信息数据。 当设置为 False 时,服务器聚合显示为总计。 此属性的设置影响链接到此数据集的所有数据区域。
注释
引用报表项Aggregate的所有包含组的组表达式必须是简单的字段引用,例如[FieldName]。 不能在使用复杂组表达式的数据区域中使用 Aggregate 。 对于 SQL ServerAnalysis Services 数据处理扩展,查询必须包含类型为 LevelProperty(而不是 MemberProperty)的 MDX 字段,才能使用 Aggregate 函数支持聚合。
Expression 可以包含对嵌套聚合函数的调用,但具有以下例外和条件:
嵌套聚合的Scope 必须与外部聚合的作用域相同,或者包含在外部聚合的作用域中。 对于表达式中的所有非重复作用域,一个作用域必须相对所有其他作用域处于子关系中。
嵌套聚合的Scope 不能为数据集的名称。
表达式不能包含
First、Last或PreviousRunningValue函数。Expression 不得包含用于指定 recursive的嵌套聚合。
有关详细信息,请参阅聚合函数引用(报表生成器和 SSRS)和总计、聚合和内置集合的表达式作用域(报表生成器和 SSRS)。
有关递归聚合的详细信息,请参阅创建递归层次结构组(报表生成器和 SSRS)。
比较 Aggregate 函数和 Sum 函数
该 Aggregate 函数不同于数值聚合函数,例如 Sum , Aggregate 该函数返回由数据提供程序或数据处理扩展插件计算的值。 数值聚合函数(例如 Sum ,返回由报表处理器基于由 范围 参数确定的数据集中的一组数据)计算的值。 有关详细信息,请参阅聚合函数引用(报表生成器和 SSRS)中列出的聚合函数。
示例:
下面的代码示例显示检索字段 LineTotal的服务器聚合的表达式。 该表达式将添加至属于组 GroupbyOrder的行的某个单元格中。
=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")
另请参阅
在报表中使用表达式(报表生成器和 SSRS)
表达式示例(报表生成器和 SSRS)
表达式中的数据类型(报表生成器和 SSRS)
总计、聚合和内置集合的表达式作用域(报表生成器和 SSRS)