计算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()
。
我在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()
。