我正在尝试根据数据中的两个字段进行计数
=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。