2014-11-04 93 views
0

我有一個MySQL數據表如下items如何在單個查詢中寫入具有不同條件的兩個不同求和查詢?

+----+-------+----------+----------+ 
| id | value | discount | type | 
+----+-------+----------+----------+ 
| 1 | 20 |  1 | hardware | 
| 2 | 40 |  0 | hardware | 
| 3 | 60 |  1 | software | 
| 4 | 30 |  1 | software | 
+----+-------+----------+----------+ 

discount是1,則這意味着有效地將value爲零。

我希望得到以下結果

+----------+----+ 
| software | 0 | 
| hardware | 40 | 
+----------+----+ 

我知道如何在多個查詢做到這一點。

SELECT type, SUM(value) from items where discount != 1 group by type 

這使我只是

+----------+----+ 
| hardware | 40 | 
+----------+----+ 

然後

SELECT type, 0 from items where discount = 1 group by type 

這給了我

+----------+----+ 
| software | 0 | 
| hardware | 0 | 
+----------+----+ 

然後我需要連接這兩個表以得到最終結果。

我的問題是:

是有辦法,我可以做到只用1查詢相同的結果?

謝謝。

回答

2

我想這是你想要的

SELECT type, SUM(if(discount =1, 0,value)) from items group by type 
+0

凱沙夫,你的回答工作出色。謝謝。 – 2014-11-04 07:21:19

相關問題