如何在SSRS 2012中使用IFF

时间:2017-12-07 18:27:10

标签: ssrs-2012

我试图获得循环时间<10的所有序列号的平均循环时间。

这是我正在使用的表达式 = Avg(Fields!CycleTime.Value)IFF(CycleTime&lt; 10),“Fields!CycleTime.Value”,“0”)

1 个答案:

答案 0 :(得分:0)

我不确定你的语法来自哪里,但这一切都错了......

首先,它的IIF不是IFF

你需要的表达是

typedef struct Stuff
{
    int id;
    String name[20];
} Stuff;

您感兴趣的解释

内部部分只是将每条记录评估为它的值,如果它是&lt; 10或=AVG(IIF(Fields!CycleTime.Value <10, Fields!CycleTime.Value,Nothing)) ,如果它&lt;&gt; = 10。

然后我们只取这些结果的平均值。

注意我们无法为10或更高的记录返回0,因为这会导致它们被包含在平均值中。通过返回nothing,AVG函数将忽略这些。

为了说明,我们说我们有以下值

Nothing

如果我们的IIF函数为值&gt; = 10返回零,那么我们将得到这些结果

5,6,7,8,9,10,11,12,13

这些的总和是35,但AVG的9个值是3.89

如果我们改变IIF功能以返回“Nothing&#39;然后结果会是这样的。

5,6,7,8,9,0,0,0,0

我们的总和是35,但AVG忽略了5,6,7,8,9, Nothing, Nothing, Nothing, Nothing 值,所以将结果除以5,得到平均值为7。