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

Calculate the count of rows in a table (SSRS grouping a table)

我在ssrs中有一个table如下。它按系统和来源描述分组,如下所示。我需要按如下方式计算每个分组后的差异 Calucated Diiference = Initial - filtered - Final = 0。如何从 table 中获取这些值并在每个分组后显示它,如下所示

系统源描述总行数

系统1

                      Source                100     
                      Initial               100     
                      Filtered              10      
                       Final                90

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

系统2

                      Source                200     
                      Initial               200     
                      Filtered              30      
                       Final                170

计算差 = 初始 - 过滤 - 最终 = 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 如果标题是 "Filtered" 或 "Final";或者 0 如果是别的。然后它简单地总结结果。

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

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

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