-1

「ゼロ除算エラーが発生しました」というエラーが表示されます。SQL Server 2005 で。このエラーが発生するゼロで除算されている行がほとんどないことを理解しています。したがって、除数がゼロの場合にこのエラーを解消できるかどうか疑問に思っていました。除数が 0 の場合、0 を返す必要があります。

sum(isnull(cast(S.S_AmountCollected as numeric(10, 2)), 0)) / sum(isnull(cast(S.AmountSold as numeric(10, 2)), 0)) 

ありがとうございました!

4

2 に答える 2

1

CASE ステートメントを使用します。

CASE WHEN SUM(ISNULL(CAST(S.AmountSold as numeric(10, 2)), 0) = 0
        THEN 0
      ELSE 
        SUM(ISNULL(CAST(S.S_AmountCollected as numeric(10, 2)), 0)) 
           / 
        SUM(ISNULL(CAST(S.AmountSold as numeric(10, 2)), 0))
     END
于 2013-02-20T16:36:42.640 に答える
0

整数を 0 で割ると未定義の値になるため、このエラーを解消することはできません。期待どおりの動作をさせるには、明示的なチェックを追加する必要があります。

于 2013-02-20T16:37:09.937 に答える