2015-02-11 32 views
0

一個SELECT條款,是給我以0誤差鴻溝以下是部分:避免除零誤差多個case語句

(SUM([Hours])/(SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END)) 

以下是我如何通過0整頓分母的鴻溝錯誤:

CASE WHEN(SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END)) = 0 THEN 1 ELSE SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END)) AS 'MTBUR' 

這是我的語法錯誤。我究竟做錯了什麼?

所以基本上,如果SUM = 0,那麼我想分母爲1 ELSE

SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END 

回答

1

CASE WHEN(SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END)) = 0 THEN 1 ELSE SUM (CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END))ENDAS 'MTBUR'

總和將是NULL

1

這個怎麼樣?讓你的CASE表達式的其他部分爲空,因此,如果沒有需要另一個END結束巢式病例行,其中描述=「I」

SUM([Hours])/ISNULL(SUM(CASE WHEN J.Description <> 'I' THEN 1 END), 1) 
+0

謝謝....這工作。 – 2015-02-11 22:41:28