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;

このような2つのSQLを組み合わせて、結果を1つとして返す方法はありますか。毎回DBを呼び出さないようにしたいからです。2つのステートメントのUNIONを試しましたが、結果は1つしか表示されませんでした。

4

1 に答える 1

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
于 2013-03-07T07:35:46.883 に答える