0

以下是我用 C 编写它的方法。

if(x < 50 && x < 0.125y)
    {
    return 0;
    }
else if(x < 50 && x >= 0.125y)
    {
    if(z >= 2a)
        {
        return 50;
        }
    }
else return b;

这是我的尝试,它只是一堆嵌套的 if ......

IIf(([Est_Order_Qty]<50) And ([Est_Order_Qty]<0.125*[Quantity On Hand]),"0",IIf(([Est_Order_Qty]<50) And ([Est_Order_Qty]>=0.125*[Quantity On Hand]),IIf([Est_Order_Qty]<2*[Qty],"50",[Rounded_To_50])))
4

3 回答 3

2
IIF((x < 50) AND (x < 0.125 * y), 0,
    IIF((x < 50) AND (x >= 0.125 * y) AND (z >= 2 * a), 50,
       b)

或者你的尝试

IIf(([Est_Order_Qty] < 50) And 
    ([Est_Order_Qty] < 0.125 * [Quantity On Hand]), "0",
    IIf(([Est_Order_Qty] < 50) And 
        ([Est_Order_Qty] >= 0.125 * [Quantity On Hand]),
        IIf([Est_Order_Qty] < 2 * [Qty], "50", [Rounded_To_50]),
        [Rounded_To_50])
)
于 2013-08-01T17:21:51.223 回答
2

试试开关

SWITCH(
x < 50 AND x < 0.125y, 0,
x < 50 AND x >= 0.125y AND z >= 2a, 50,
TRUE, b)
于 2013-08-01T17:36:49.110 回答
0

如果我正确理解了您的 if 语句,那么我的答案是:

    iif(x < 50 And x > 0.125y, "0", iif(x < 50 And x >= 0.125y, iif(2 >= 2a, 50, ""), b))

我相信就是这样。让我知道。

于 2013-08-01T17:06:56.313 回答