带开关的SSRS计数



我正在尝试根据数据中的两个字段进行计数

=switch((Fields!color.value = "Higher" and not isnothing(Fields!ncdrqtrpercent.Value)),count(iif(Fields!ncdrqtrpercent.Value >= Fields!percentile.Value,1,nothing)),(Fields!color.value = "Lower" and not isnothing(Fields!ncdrqtrpercent.Value)),count(iif(Fields!ncdrqtrpercent.Value <= Fields!percentile.Value,1,nothing)))

当数值较高时,第一部分有效,但当数值较低时,计数不起作用

我不确定这样做是否正确,或者是否有更好的方法。

在SWITCH中有一个聚合计数。如果有任何分组,它将只检查第一个记录的COLOR和PERCENT,然后汇总其余的。

我想这就是你想要的:

=SUM(
SWITCH  (
Fields!color.value = "Higher" AND NOT ISNOTHING(Fields!ncdrqtrpercent.Value) AND Fields!ncdrqtrpercent.Value >= Fields!percentile.Value, 1, 
Fields!color.value = "Lower"  AND NOT ISNOTHING(Fields!ncdrqtrpercent.Value) AND Fields!ncdrqtrpercent.Value <= Fields!percentile.Value, 1, 
1 = 1, 0
)

在这种情况下,我更喜欢使用0/1的SUM而不是count -尽管我认为1/Nothing的工作原理是一样的。

计算每条记录,如果满足前两个SWITCH条件中的任何一个,则返回1。1 = 1是将不符合条件的记录赋值为SUM的0。

相关内容

  • 没有找到相关文章

最新更新