select STORECODE,
ItemCode,
ColorCode,
ToplamStok,
ToplamSatis,
(CASE WHEN ToplamSatis = 0
THEN ISNULL(ToplamStok/NULLIF(ToplamSatis,0.1)*7,0)
ELSE (ToplamStok/ToplamSatis)*7
end) as SDH
into #SatisStokSDH
from #SatisStok
对于此查询,我收到此错误:遇到零除错误。 为什么我得到这个,我已经使用了isnull功能?
提前致谢。
答案 0 :(得分:1)
您的问题是当ToplamSatis
恰好为零时,您仍然除以零:
NULLIF(ToplamSatis, 0.1)
以上内容会将ToplamSatis
替换为0.1
,但前提是NULL
,不是,如果它为零。请尝试以下CASE
逻辑:
CASE WHEN ToplamSatis = 0
THEN ISNULL((ToplamStok / 0.1)*7, 0) -- not sure if need to wrap with ISNULL
ELSE (ToplamStok / ToplamSatis)*7
END