iif 语句返回错误的结果

iif statement returning the wrong results

我正在使用这些表达式将我的数据分组到列

=CountDistinct(iif((Fields!I_Sch_Close.Value >= DateSerial(Year(Now()), Month(Now()), "1")
AND Fields!I_Sch_Close.Value <= DateSerial(Year(Now()), 
Month(Now()), "1").AddMonths(1).AddDays(-1)), 1,0))
=CountDistinct(iif((Fields!I_Sch_Close.Value >= DateSerial(Year(Now()),
Month(Now()), "1").AddMonths(1) AND Fields!I_Sch_Close.Value <= 
DateSerial(Year(Now()), Month(Now()), "1").AddMonths(2).AddDays(-1)), 1,0))
=CountDistinct(iif((Fields!I_Sch_Close.Value >= DateSerial(Year(Now()),
Month(Now()), "1").AddMonths(2) AND Fields!I_Sch_Close.Value <= 
DateSerial(Year(Now()), Month(Now()), "1").AddMonths(3).AddDays(-1)), 1,0))
=CountDistinct(iif((Fields!I_Sch_Close.Value >= DateSerial(Year(Now()), 
Month(Now()), "1").AddMonths(3) AND Fields!I_Sch_Close.Value <= 
DateSerial(Year(Now()), Month(Now()), "1").AddMonths(4).AddDays(-1)), 1,0))

这是结果

这里是查询返回的数据

如您所见,April 和 May 字段显示返回 1 个结果,而我认为它应该显示 0。No COE(I_Sch_Close) Column 应该是 11,但使用以下表达式读取 2:

=CountDistinct(iif(ISNOTHING(Fields!I_Sch_Close.Value),1,0))

我做错了什么?

您在以下表达式中的 IIf 语句为无 COE returns 1 或 0

=CountDistinct(iif(ISNOTHING(Fields!I_Sch_Close.Value),1,0))

它们的非重复计数不能超过 2。相反,您需要计算表达式为 True 的次数。尝试这样的事情:

=Count(IIf(<expression>, 1, Nothing))