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에 전화하는 것을 피하기 위해서입니다. 나는 두 개의 문장으로 UNION을 시도했지만 오직 하나의 결과 만 보여 주었다.여러 개의 서로 다른 SQL을 하나로 결합하기

답변

3

이것은 MySQL에서 가능한 한 가장 짧은 해결책입니다.

SELECT SUM(status = 1) totalActive, 
     SUM(status = 0) totalInactive 
FROM tableName 
  • SQLFiddle Demo
    • 이는 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' –

    관련 문제