SSRS Avg函数返回与预期不同的结果

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功能适用于条件但平均值不适用.

Ian*_*ton 6

你绝对可以使用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)

  • 喜欢你的人就是我爱这个网站的原因.你非常乐于助人.再次感谢. (2认同)