计算表中的行数(SSRS对表进行分组)

时间:2018-11-26 19:56:23

标签: reporting-services ssrs-2012 ssrs-2008-r2 ssrs-tablix

我在ssrs中有一个表格,如下所示。按系统将其分组,并按如下所示分类。我需要在每次分组后计算差异,如下所示 计算的差异=初始-过滤-最终=0。如何从表格中获取这些值,并在每次分组后显示出来,如下所示

系统源描述总行数

System1

                      Source                100     
                      Initial               100     
                      Filtered              10      
                       Final                90

计算差异=初始-过滤-最终= 0

System2

                      Source                200     
                      Initial               200     
                      Filtered              30      
                       Final                170

计算差异=初始-过滤-最终= 0

2 个答案:

答案 0 :(得分:0)

假设数据集列称为myCaption(对于描述部分)和myValue(对于数字部分),则可以编写如下表达式。

=SUM( Fields!myValue.Value * 
    SWITCH(Fields!myCaption.Value = "Initial", 1,
            Fields!myCaption.Value = "Filtered" OR Fields!myCaption.Value = "Final", -1,
            True,0
            )
    )

这只是获取详细信息行myValue并将其乘以以下任意一个: 1(如果标题是“ Initial”); -1(如果标题是“已过滤”或“最终”);或0(如果还有其他内容)。然后,它只是对结果求和。

答案 1 :(得分:0)

只需在表中添加另一行(在最终位置之后),然后将以下表达式添加到文本框中即可。这里重要的是将范围添加到计算中,因此系统知道您要访问分组级别的值:

=(Fields!Initial.Value, "SystemGroupingName") - (Fields!Filtered.Value, "SystemGroupingName") - (Fields!Final.Value, "SystemGroupingName")
=(100                                       ) - (10                                         ) - (90                                      )

如果字段值不是数字,则需要在每个字段周围放置CDbl()