Aggregate 函数 (Reporting Services)
按照数据访问接口的定义返回指定表达式的自定义聚合。
语法
Aggregate(expression, scope)
参数
expression
要对其执行聚合的表达式。 该表达式必须是简单字段引用表达式。scope
(String) 包含要对其应用聚合函数的报表项的数据集、组或数据区域的名称。 如果未指定 scope,则使用当前作用域。 有关 scope 参数的详细信息,请参阅在表达式中使用内置报表函数和聚合函数 (Reporting Services) 和计算总计和其他聚合 (Reporting Services)。
返回类型
返回类型视数据访问接口而定。 如果数据访问接口不支持此函数或数据不可用,则返回 Nothing。
注释
Aggregate 函数提供了一种用于支持数据访问接口功能的方法。 例如,SQL ServerAnalysis 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 函数的聚合。 |
比较 Aggregate 函数和 Sum 函数
Aggregate 函数不同于数值聚合函数(例如 Sum),区别在于 Aggregate 函数会返回由数据访问接口或数据处理扩展插件计算的值, 而类似于 Sum 的数值聚合函数会返回由报表处理器针对由 scope 参数确定的数据集中的一组数据所计算的值。 有关详细信息,请参阅在表达式中使用内置报表函数和聚合函数 (Reporting Services) 中列出的聚合函数。
示例
下面的代码示例显示检索字段 LineTotal 的服务器聚合的表达式。 该表达式将添加至属于组 GroupbyOrder 的行的某个单元格中。
=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")