iT邦幫忙

0

ms sql case when 運算問題

我用 MS SQL 語法如下

得到結果 成功率 是 0

想請問有何解決辦法呢?

謝謝

select  生產線,case when text=OK then 1 else 0 end OK數量,case when text=NG then 1 else 0 end NG數量, OK數量/(NG數量+OK數量)成功率
FROM

2 個回答

0
純真的人
iT邦研究生 5 級 ‧ 2017-12-06 15:52:11
最佳解答

你要小數點~
要先一開始就轉換~才會得到~

select  生產線
,(
	case when text=OK 
	then 1 
	else 0 
	end 
) as OK數量
,(
	case when text=NG 
	then 1 
	else 0 
	end 
) as NG數量
,(
	Convert(decimal(18, 2),Convert(decimal(18, 2), OK數量) / (Convert(decimal(18, 2),NG數量) + Convert(decimal(18, 2),OK數量))) 
) as 成功率
FROM
pp73793 iT邦新手 4 級 ‧ 2017-12-07 17:05:23 檢舉

非常感謝,解決了

0
做工仔人!
iT邦高手 1 級 ‧ 2017-12-06 15:15:12

select 生產線,OK數量,NG數量,OK數量/(NG數量+OK數量)成功率
from (select 生產線,count(生產線) OK數量,0 NG數量
from TABLE
WHERE text=OK
group by 生產線
union all
select 生產線, 0 OK數量,count(生產線) NG數量
from TABLE
WHERE text=NG
group by 生產線
)
group by 生產線

我要發表回答

立即登入回答