Sum 函数(报表生成器和 SSRS)
返回在给定作用域中计算的、由表达式指定的所有非 Null 数值的和。
注意
在 SQL Server Data Tools 中,您可以在报表生成器和报表设计器中创建和修改报表定义 (.rdl)。 每个创作环境提供了不同的方式来创建、打开和保存报表和相关项。 有关详细信息,请参阅 Web 上 microsoft.com 中的“在报表设计器和报表生成器中设计报表 (SSRS)”。
语法
Sum(expression, scope, recursive)
参数
expression
(Integer
或 Float
)要对其执行聚合的表达式。
作用域
(String
) 可选。 包含要对其应用聚合函数的报表项的数据集、组或数据区域的名称。 如果未指定 scope ,则使用当前作用域。
递归
(Enumerated Type) 可选。 Simple
(默认值)或 RdlRecursive
。 指定是否以递归方式执行聚合。
返回类型
对于十进制表达式,返回 Decimal
;对于所有其他类型的表达式,返回 Double
。
备注
表达式中指定的数据集必须具有相同的数据类型。 若要将具有多个数值数据类型的数据转换为同一数据类型,请使用类似 CInt
、CDbl
或 CDec
的转换函数。 有关详细信息,请参阅 Type Conversion Functions(类型转换函数)。
scope 的值必须是字符串常量,不能是表达式。 对于外部聚合或未指定其他聚合的聚合, scope 必须引用当前作用域或包含作用域。 对于聚合的聚合,嵌套聚合可以指定子作用域。
Expression 可以包含对嵌套聚合函数的调用,但具有以下例外和条件:
嵌套聚合的Scope 必须与外部聚合的作用域相同,或者包含在外部聚合的作用域中。 对于表达式中的所有非重复作用域,一个作用域必须相对所有其他作用域处于子关系中。
嵌套聚合的Scope 不能为数据集的名称。
表达式 不得包含
First
、Last
、Previous
或RunningValue
函数。Expression 不得包含用于指定 recursive的嵌套聚合。
有关详细信息,请参阅聚合函数引用(报表生成器和 SSRS)和总计、聚合和内置集合的表达式作用域(报表生成器和 SSRS)。
有关递归聚合的详细信息,请参阅创建递归层次结构组(报表生成器和 SSRS)。
示例
以下两个代码示例提供了 Order
组或数据区域中所有行项总计值的和。
=Sum(Fields!LineTotal.Value, "Order")
' or
=Sum(CDbl(Fields!LineTotal.Value), "Order")
示例
在具有嵌套行组 Category 和 Subcategory 以及嵌套列组 Year 和 Quarter 的矩阵数据区域中,在属于最内侧的行组和列组的单元中,以下表达式的计算结果为所有子类别的所有季节中的最大值。
=Max(Sum(Fields!Sales.Value))
另请参阅
在报表中使用表达式(报表生成器和 SSRS)
表达式示例(报表生成器和 SSRS)
表达式中的数据类型(报表生成器和 SSRS)
总计、聚合和内置集合的表达式作用域(报表生成器和 SSRS)