2013-10-08 179 views
1

如果faulttype ='business'和faultseverity ='fatal',我想使用下面列出的查詢將4與故障數相乘;MySQL查詢返回字符串而不是數字值

Select faulttype, IF (faulttype='business' AND faultseverity='fatal', 1,0)* 4 FROM tbl_fault WHERE product='DAS' AND faultdistribution='missed' 
group by faulttype 

我得到的結果業務,而不是數值,我應該在此查詢得到糾正?

問候

+0

哪個結果集的列是你想找回?第一個仍然是'faulttype',第二個將是數字值。 –

+0

我想從第二列中檢索數值。 – MOZ

+1

是的,但你應該向我們展示代碼,而不是查詢。問題必須在那裏。 –

回答

1

試試這個

Select CASE faulttype WHEN faulttype='business' AND faultseverity='fatal' THEN 1*4 ELSE 0 END AS rez FROM tbl_fault WHERE product='DAS' AND faultdistribution='missed' 
2

試試這個

Select faulttype, sum(IF (faulttype='business' AND faultseverity='fatal', 1,0))*4 FROM tbl_fault WHERE product='DAS' AND faultdistribution='missed' 
group by faulttype; 

For reference see the sql fiddle.

相關問題