2016-10-24 29 views
0

予約日に表示されるリストの日数は、 のボートがCOUNT集計関数を使用して予約されています。COUNTを使用したSQLクエリで問題が発生する

sname rating 
Joe 4 
Bob 2 
Tim 9 
Mike 1 
Lewis 5 

ボートテーブル:

bname color rating 
Ace orange 6 
Bethany red 5 
Cruiser green 9 
WindySea red 8 

予約テーブル:

sname bname day 
Bob Ace Monday 
Bob Bethany Wednesday 
Bob WindySea Saturday 
Tim Ace Sunday 
Tim Bethany Wednesday 
Tim Cruiser Wednesday 
Mike Ace Monday 
+0

ないで変換する方法の説明がために存在する。ここ はテーブル

サーバントテーブルですCOUNTも助けになりますful。 – ghosting999

答えて

1
SELECT r.day 
FROM reservation r 
JOIN boat b 
    ON r.bname = b.bname 
GROUP BY r.day 
HAVING COUNT(CASE WHEN b.color <> 'red' THEN 1 ELSE NULL END) = 0 
    AND COUNT(CASE WHEN b.color = 'red' THEN 1 ELSE NULL END) > 0 -- optional 
+0

あなたが含まれていなかった場合、Sean 'ELSE NULL'がデフォルトです。 –

+0

私は、これは非常にきれいです。私は他の方法を試しましたが、いつも追加されてはならない余分な列がありました。ありがとう! – ghosting999