Oracle BI表达式中存在错误

Oracle BI表达式中存在错误,oracle,expression,business-intelligence,obiee,fusion,Oracle,Expression,Business Intelligence,Obiee,Fusion,我试图检查字段是否为0或null,如果是,剩余金额将等于发票金额 出现此错误,我搜索了它,但什么也没找到 代码如下: IF (G_Invoice.Amount_Paid = 0 OR G_Invoice.Amount_Paid is null ) then Remaining_Amount := G_Invoice.Invoice_Amount else G_Invoice.Invoice_Amount-G_Invoice.Amount_Paid end if; 这个错误很容易解释,

我试图检查字段是否为0或null,如果是,剩余金额将等于发票金额

出现此错误,我搜索了它,但什么也没找到

代码如下:

IF (G_Invoice.Amount_Paid = 0 OR G_Invoice.Amount_Paid is null )

then

Remaining_Amount := G_Invoice.Invoice_Amount

else

G_Invoice.Invoice_Amount-G_Invoice.Amount_Paid

end if;

这个错误很容易解释,我只是在一个简短的评论中这样做的

但同样的结果可能更简单:

Remaining_Amount := G_Invoice.Invoice_Amount-NVL(G_Invoice.Amount_Paid, 0)

不需要在NVL中隐藏IF语句。如果减去0,则无需将已付金额为零的情况视为特殊情况,这与返回发票金额不变相同。NVL将导致null转换为零。

如果度量值是在Oracle BI中计算的,则LSQL代码应为:

Remaining_Amount - ifnull(G_Invoice.Amount_Paid,0)

您是否尝试过案例陈述,例如?THEN部分包含赋值,这是正确的。其他部分没有,它只是一个算术表达式。您缺少该分支中的剩余金额:=。