私は、特定の日数(checkin_dateとcheckout_date)でどのヴィラが無料であるかを調べるための簡単なクエリを作成しました。TSQLクエリヘルプ結合関数
しかし、今、私はそれについて考えることを私は以下のクエリが正しい結果を返すとは思わない:
SELECT DISTINCT default_villa_type
FROM villa, reservation
WHERE villa.villa_type = reservation.default_villa_type
and res_checkin_date not between '2011-12-21' and '2011-12-23'
and res_checkout_date not between '2011-12-21' and '2011-12-23'
私が使用するクエリが必要になります。
次の列を持つヴィラテーブル:
(villa_id, phone_ext, villa_type, no_of_rooms, no_of_beds, default_price_plan)
次の列と予約テーブル:
(confirm_no, credit_card_no, res_checkin_date, res_checkout_date, default_villa_type, price_plan)
両方のテーブルを使用して、クエリに入力された日付の下で利用可能なヴィラの種類を判断するのは適切ではないとは思いますが、間違っている可能性があります。 。
予約のチェックインが指定された範囲の開始日より前で、そのチェックアウト日が範囲の終了日より後であった場合、コードが破損する可能性があります。したがって、ヴィラの予約が2011年12月20日から2011年12月24日までの場合、そのヴィラは無料ではありませんが、コードは無料で返却されます。 – bitxwise
テーブル 'reservation'にも' villa_id'フィールドはありませんか?どのヴィラが予約されたのか、どうやって知っていますか? –
これはまだ開いているのですか、あなたの質問に答えられましたか? – bitxwise