【发布时间】:2013-07-22 14:09:09
【问题描述】:
目前我正在尝试对一组数字进行平均,但有一定的条件。
是否可以在avg() 中使用iif() 并返回正确的结果?
此外,到目前为止,我的计算返回一个小数,返回一个幂 (8.9267....E -05)。
我尝试通过有条件地求和然后除以条件计数来规避AVG 函数,但它给了我相同的结果。
有人可以解释为什么返回并提供帮助吗?
目前我有:
=avg(iif((This_case) AND (That_case) AND (This_conditional)
, Fields!ResponseRate.Value
, 0))
如果满足某些条件,基本上我想要平均 ResponseRate。
sum 函数在这些条件下工作正常,但平均值不行。
【问题讨论】:
-
您绝对可以在
Avg中使用IIf并获得正确的结果。如果没有您的数据,就不可能说出您的特定情况下发生了什么。您能否提供几行数据集,在可重复的测试用例中证明您的问题? -
@IanPreston 这就是我的想法,但我得到了我提到的结果。目前我有 =avg(iif((This_case) AND (That_case) AND (This_conditional), Fields!ResponseRate.Value, 0)) 如果满足某些条件,我基本上想要平均 ResponseRate。 (顺便说一下,我对 SSRS 比较陌生,所以我可能会误解你)。 sum 函数在这些条件下工作正常,但平均值却不行。
-
您想从计算中完全排除
False值吗?如上所述,您仍然包括它们,只需将它们设置为0,因此仍将它们包括在计算中。这可能解释了你意想不到的结果。如果您想完全排除它们,请使用Nothing而不是0。如上所述,这仍然只是假设 - 您可以使用示例数据集复制您的问题并将其添加到问题中吗? -
使用 Nothing 代替 0 有效。感谢您的帮助!
-
不客气!我根据我们的讨论添加了一个答案;请考虑将此设置为接受的答案。
标签: function reporting-services ssrs-2008 average iif-function