0

我是 SQL 新手,想知道处理除以零的最佳方法。我知道 NULLIF 函数,但是我在实现它时遇到了一些麻烦。

在此示例中,每个字段都可以为零。解决这个问题的最佳方法是什么?我们应该只检查整个表达式是否等于零,还是对 mu 表达式中的每个字段进行某种检查?

 SELECT             
        round(Sum((SOI.CurItemValue + SOI.CurTaxValue) / NULLIF(SOI.Quantity,0) * NULLIF(SOI.QuantityOutstanding,0)),2) 
        FROM SalesOrderItems SOI

有了这个当前的代码,我得到Null value is eliminated by an aggregate or other SET operation.

4

1 回答 1

2

仅当 Quantity 大于 0 时才可以使用 CASE 计算。检查此查询:

SELECT             
    CASE WHEN SOI.Quantity=0 THEN 0
         ELSE ROUND( Sum( (SOI.CurItemValue + SOI.CurTaxValue) / SOI.Quantity  * SOI.QuantityOutstanding ),2) END OutstandingValue
FROM SalesOrderItems SOI
于 2018-11-22T09:59:05.027 回答