我有一个查询,我需要获得一个数字除以2列中的2个字段。
shelve.total_qty /(GREATEST(NVL(y.FORECAST_QUANTITY,0),NVL(z.sales,0))/ 7)为Shelve_DOC
我得到了臭名昭着的错误。
ORA-01476:除数等于零
01476. 00000 - “除数等于零”
*原因:
*操作:
我已经阅读过我需要一个CASE / IF,但我不确定如何...
任何帮助都将不胜感激。
答案 0 :(得分:1)
SELECT
CASE WHEN (GREATEST(NVL(y.FORECAST_QUANTITY, 0), NVL(z.sales, 0))/7) = 0 THEN null
ELSE shelve.total_qty/(GREATEST(NVL(y.FORECAST_QUANTITY, 0), NVL(z.sales, 0))/7)
END Shelve_DOC
FROM ...
WHERE ....
应该做的伎俩。
答案 1 :(得分:1)
这样的东西?
CASE WHEN NVL(y.FORECAST_QUANTITY,0) <= 0 AND NVL(z.sales,0) <= 0
THEN NULL
ELSE shelve.total_qty/(GREATEST(NVL(y.FORECAST_QUANTITY, 0), NVL(z.sales, 0))/7)
END AS Shelve_DOC