Oracle BI表达式中存在错误
我试图检查字段是否为0或null,如果是,剩余金额将等于发票金额 出现此错误,我搜索了它,但什么也没找到 代码如下: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; 这个错误很容易解释,
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部分包含赋值,这是正确的。其他部分没有,它只是一个算术表达式。您缺少该分支中的剩余金额:=。