每个人, 在SSRS中,我们有两列如下所示。
Sales | Running Sales 5.00 | 5.00 3.00 | 8.00 1.00 | 9.00
区别在于第一列(sales)是一个分组行,因此要获得每行的销售总额,我们使用= Sum(Fields!Sales.Value)。
当我尝试使用运行值来获得正在运行的销售总额时,会出现问题。它给我SSRS错误,聚合函数只能在页眉和页脚上使用。在这种情况下,在页脚中包含总数是没有意义的。有没有人知道这个问题的解决方案/解决方法。
感谢。
答案 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作为十进制数。还有两个函数AddTotal
和GetTotal
。
AddTotal
允许将行中的项目相加,在值单元格中使用如下所示;
=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