2017-05-04 17 views
0

私はこのテーブルをしたいを選択2つの異なる値

予約テーブル

+----+--------+ 
| ID | Status | 
+----+--------+ 
| 1 | R  | 
| 2 | R  | 
| 3 | C  | 
| 4 | C  | 
+----+--------+ 

は、これまでのところ、私はこれを得ました -

SELECT Status AS Reserves 
FROM Booking WHERE Status = 'R' OR Status = 'C' 

出力 -

+----------+ 
| reserves | 
+----------+ 
| R  | 
| C  | 
| R  | 
| C  | 
+----------+ 
+1

これは、ピボットテーブルと呼ばれ、この質問を持っていあなたに何度も尋ねられ、答えられました。 – Shadow

+0

@Nahimどのデータベースを使用していますか? –

+0

重複したトピックは、静的(列はあらかじめわかっています)と動的(列はあらかじめわかっていません)をmysqlで作成する方法を示しています。静的バージョンはpostgresqlでも使用できます。 – Shadow

答えて

2

CASE式にごWHERE句からロジックを入れ、全体テーブルの上にそれを合計:

SELECT 
    SUM(CASE WHEN Status = 'R' THEN 1 END) AS Reserved, 
    SUM(CASE WHEN Status = 'S' THEN 1 END) AS Cancelled 
FROM Booking 
+0

これはうまくいきました、ありがとう – Nahim

関連する問題