2012-05-1と2012-11-01の間に予約されている客室を予約データベースから選択するにはどうしますか?SQL照会
SQL照会
答えて
SELECT * from room
WHERE (roomNo, hotelNo) not in
(select roomNo, hotelNo
from booking
where datefrom between '2012-05-01' and '2012-11-01'
or dateto between '2012-05-01' and '2012-11-01'
)
select r.* from rooms r
left outer join bookings b on b.roomno = r.roomno
where b.dateto not between '2012-05-01' and '2012-11-01'
and b.datefrom not between '2012-05-01' and '2012-11-01'
or b.roomno is null
予約期間が終了日の開始の途中であればどうなりますか?あなたは、開始日または終了日の途中で部屋を予約している人はいません。 – aleroot
@aleroot:それはすべきです。 SQLFiddleの例を参照してください。 –
@juergendこれまでの予約のない客室ではご利用いただけません。 –
次これは、2つの特定の日付の間に予約されていないすべての客室を含める必要があります試してみてください。
SELECT * FROM Room r
JOIN Booking b ON b.hotelNo = r.hotelNo AND r.roomNo = b.roomNo
WHERE NOT ('2012-05-01' BETWEEN (b.dateFrom AND b.dateTo)
OR '2012-11-01' BETWEEN (b.dateFrom AND b.dateTo))
これまでの予約のない部屋では使用できない場合があります –
- 1. SQL Server - sysobjectsの照会
- 2. データベースへのSQL照会インターフェース
- 3. SQL照会2週間
- 4. Sql Compact:Ntext列の照会
- 5. 名前によるSQLクエリの照会
- 6. SQL Serverチェック制約の照会
- 7. SQL - 日付範囲による照会
- 8. SQL照会の戻り値のセットシーケンス
- 9. ログインのためのSQL照会
- 10. SQL照会の共通分母(列)
- 11. 複数のキーワードを別々に照会してSQLで一括して照会
- 12. servicestackプロパティの照会名で照会
- 13. 照会可能な照会データ数
- 14. LinqからSQLへのSQLビューの照会方法は?
- 15. GWT照会サービス
- 16. DataGridTextColumnの照会
- 17. Solr - 照会フレーズ
- 18. トレーニングで照会
- 19. ドキュメントライブラリの照会
- 20. Luceneは、SQL照会照会と同じ方法で、照会に一致するすべての文書を常に返しますか?
- 21. XPATHステートメントの照会
- 22. db4oサブオブジェクトを照会
- 23. JayDataでの照会
- 24. Bluetooth 3.0照会タイミング
- 25. Mongoidハッシュフィールドの照会
- 26. drupalの照会メソッド
- 27. 同じ列の複数の値を照合するためのSQL照会
- 28. SQL Server:階層化され参照されたデータを照会する
- 29. SQL文を使用してメモリ内オブジェクトを照会する
- 30. Sql Server 2005 SSIS/Agent - ジョブのステータスを照会します。
あなたのアイデアは何ですか?あなたの試みを見せてください。 –