SQL Server Reporting Services在聚合数据上运行总计

时间:2012-11-09 16:45:46

标签: reporting-services ssrs-2008

每个人, 在SSRS中,我们有两列如下所示。

Sales  |  Running Sales
5.00   |      5.00
3.00   |      8.00
1.00   |      9.00

区别在于第一列(sales)是一个分组行,因此要获得每行的销售总额,我们使用= Sum(Fields!Sales.Value)。

当我尝试使用运行值来获得正在运行的销售总额时,会出现问题。它给我SSRS错误,聚合函数只能在页眉和页脚上使用。在这种情况下,在页脚中包含总数是没有意义的。有没有人知道这个问题的解决方案/解决方法。

感谢。

1 个答案:

答案 0 :(得分:3)

我有同样的问题;这是我如何解决它。

所以这里是如何对一个本身就是求和函数的列进行小计。 SSRS 2005不允许您聚合聚合函数。例如,显示“运行总计”的列总数,在每日库存余额计算中很有用。 将以下代码添加到报告>特性

Dim public totalBalance As Decimal 
Public Function AddTotal(ByVal balance As Decimal) AS Decimal totalBalance = totalBalance + balance return balance 
End Function 
Public Function GetTotal() return totalBalance 
End Function

此代码添加两个变量:totalbalance和cnt作为十进制数。还有两个函数AddTotalGetTotalAddTotal允许将行中的项目相加,在值单元格中使用如下所示;

=RunningTotal(Fields!ColumnName.Value,sum,nothing) 
with
=Code.AddTotal(RunningTotal(Fields!ColumnName.Value,sum,nothing))

在整个单元格中,您无法简单地使用

=sum(RunningTotal(Fields!ColumnName.Value,sum,nothing))
use instead
=Code.GetTotal()

如果您需要将一个字段的总和加起来,只需添加更多变量和公共函数。

http://blog.wingateuk.com/2011/09/ssrs-aggregate-of-aggregate.html