2013-03-07 5 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' –

+1

один предмет. можно ли добавить другое условие, такое как номер зарегистрированного клиента, начиная с этого определенного запроса даты в этот один запрос (столбец даты проверки) и т. д.? – kitokid

+0

да, это возможно ': D' –