2013-03-07 39 views
2
cusID | Name | status | Date 
--------------------------------- 
    1 | AA | 0 | 2013-01-25 
    2 | BB | 1 | 2013-01-23 
    3 | CC | 1 | 2013-01-20 



SELECT COUNT(cusID) FROM customer WHERE STATUS=0; 
SELECT COUNT(cusID) FROM customer WHERE STATUS=1; 

有沒有一種方法來梳理這兩個sql並將結果作爲一個返回。因爲要避免每次調用DB。我嘗試了兩個參數的聯合,但只顯示一個結果。將多個不同的sql合併成一個

回答

3

這是MySQL中最短的解決方案。

SELECT SUM(status = 1) totalActive, 
     SUM(status = 0) totalInactive 
FROM tableName 

,這是CASE版本

SELECT SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) totalActive, 
     SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) totalInactive 
FROM tableName 
+0

你歡迎':D' – 2013-03-07 07:40:48

+1

一件事。是否有可能添加另一個條件,如客戶登記開始從該特定日期查詢數量到該查詢(檢查日期列)等? – kitokid 2013-03-07 07:44:31

+0

是的,有可能':D' – 2013-03-07 07:50:25