0

私の質問を読んでくれてありがとう。

以下のクエリがあります。

   round(count(product)*100/(select sum(count(product)) FROM FACTORY 
   WHERE TRUNC(COMPLETED) >= '01-MAR-2013' and 
   TRUNC(COMPLETED) <= '31-MAR-2013' 
   group by (product))) as percentage FROM FACTORY

以下のエラーが表示されます。

    Error: ORA-01476: divisor is equal to zero
    SQLState:  22012
    ErrorCode: 1476

COALESCE を入れようとしましたが、それでも同じエラーが発生します。

  round(count(product)*100/(select COALESCE(sum(count(product)),0) FROM FACTORY 
  WHERE TRUNC(COMPLETED) >= '01-MAR-2013' and 
  TRUNC(COMPLETED) <= '31-MAR-2013' 
  group by (product))) as percentage FROM FACTORY

親切に助けてください。

4

2 に答える 2

2

試す

1)

SELECT  xxx/ NULLIF(yyyy,0) FROM [dbo].[tablename]

また

2)

SELECT  COALESCE(xxx / NULLIF(yyyy,0), 0) FROM [dbo].[tablename]
于 2013-07-20T14:08:41.937 に答える
0

値が 0 にならないように、where 句を使用してデータを除外します。product !=0 を where 句に追加しました

于 2013-07-20T15:47:00.437 に答える