Rya*_*yan 2 iif-function average function reporting-services ssrs-2008
目前我试图平均一组数字,但具有一定的条件.
是否有可能使用iif()内avg()并返回正确的结果呢?
此外,截至目前,我的计算返回一个小数返回功率(8.9267 .... E -05).
我尝试AVG通过有条件地求和然后除以条件计数来绕过函数,但它给出了相同的结果.
有人可以解释为什么返回并提供帮助吗?
目前我有:
=avg(iif((This_case) AND (That_case) AND (This_conditional)
, Fields!ResponseRate.Value
, 0))
Run Code Online (Sandbox Code Playgroud)
基本上,如果满足某些条件,我想要平均ResponseRate.
该sum功能适用于条件但平均值不适用.
你绝对可以使用IIf内部Avg并获得正确的结果.
是否要False完全从计算中排除值?
在你的例子中,你仍然包括它们,只是将它们设置为0,因此仍然包括在计算中.这可能会解释您的意外结果.
如果要完全排除它们Nothing而不是使用0.
评论后编辑
您可以将表达式嵌套在另一个 IIf语句中,并使用以下方法检查NULL值IsNothing.
说你的条件平均表达式是:
=Avg(IIf(Fields!ID.Value > 5, Fields!value.Value, Nothing))
Run Code Online (Sandbox Code Playgroud)
您可以使用以下内容返回0表示NULL值:
=IIf(IsNothing(Avg(IIf(Fields!ID.Value > 5, Fields!value.Value, Nothing)))
, 0.0
, Avg(IIf(Fields!ID.Value > 5, Fields!value.Value, Nothing)))
Run Code Online (Sandbox Code Playgroud)