SSRS的总和与SUM的IIF

时间:2013-05-30 15:49:10

标签: sql-server reporting-services reportbuilder

我有两个列组,它们有各自的行总计,由

计算
Sum(Fields!ColumnGroup1.Value)

Sum(Fields!ColumnGroup2.Value)

然后我有一个列显示两个总和之间的差异,但前提是它们的总差异大于0

=IIF(
     Sum(Fields!ColumnGroup1.Value) - Sum(Fields!ColumnGroup2.Value) > 0.00,
     Sum(Fields!ColumnGroup1.Value) - Sum(Fields!ColumnGroup2.Value), 
     0.00)

现在,该行包含我的两个列组,它们的总数以及它们之间的差异(如果它大于0

如何计算表达式列的所有行的总和?

由于某些原因,以下内容给出了错误的值:

=SUM (
     IIF(
         Sum(Fields!ColumnGroup1.Value) - Sum(Fields!ColumnGroup2.Value) > 0.00,
         Sum(Fields!ColumnGroup1.Value) - Sum(Fields!ColumnGroup2.Value), 
     0.00)
     )

这假设有效吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

我解决了我的问题。 我没说的是我也有行组。我需要在SUM上指定子行组。 (我原以为它应该是父行组)

=SUM (
   IIF(
     Sum(Fields!ColumnGroup1.Value,"Child") - Sum(Fields!ColumnGroup2.Value,"Child") > 0.00,
     Sum(Fields!ColumnGroup1.Value,"Child") - Sum(Fields!ColumnGroup2.Value,"Child"), 
   CDec(0))
 )

如果需要为小计0显示空白值,请使用“Nothing”,如果需要显示值,则使用“CDec(0)”

由于

答案 1 :(得分:0)

我认为你要检查的总和需要额外的括号0

=SUM (
     IIF((Sum(Fields!ColumnGroup1.Value) - Sum(Fields!ColumnGroup2.Value)) > 0.00,
         Sum(Fields!ColumnGroup1.Value) - Sum(Fields!ColumnGroup2.Value), 
     0.00)
     )

答案 2 :(得分:0)

您是否在查询中添加了“分组依据”?我相信你需要这样做才能实际汇总一个总和值。

如果不是那样,那么尝试将字段(包含表达式)移动到静态行(即不包含在列组中)。

另外,为什么不尝试丢失小数点?无论有多少零小数位,零都为零。