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照会の効率チェック
- 2. SQL Server - sysobjectsの照会
- 3. Sql Compact:Ntext列の照会
- 4. SQL照会Webサイトのリンク
- 5. データベースへのSQL照会インターフェース
- 6. SQL Serverのオンライン照会
- 7. SQL照会の解読
- 8. SQL照会2週間
- 9. SQL照会の結果の照合
- 10. ピボットUnPivot SQL照会の照合
- 11. ユーザー権限のSQLの照会
- 12. 名前によるSQLクエリの照会
- 13. Nullable列LinqをSQLに照会
- 14. SQL 2014タクシーの旅行データの照会
- 15. Azure SQLバックアップを照会する方法
- 16. Cloud SQLからBigQueryテーブルを照会
- 17. SQL照会の戻り値のセットシーケンス
- 18. SQLビューを照会できません
- 19. Azure SQLでデータベース間を照会
- 20. ログインのためのSQL照会
- 21. SQL Serverチェック制約の照会
- 22. SQL - 日付範囲による照会
- 23. SQLすべてのデータベースを照会
- 24. SQL照会の共通分母(列)
- 25. SQL照会の計算結果には
- 26. node.jsのsqlサーバへの照会
- 27. SQLの照会結果をビット
- 28. Node.jsサーバーからSpark SQLを照会
- 29. 複数のキーワードを別々に照会してSQLで一括して照会
- 30. 照会の会話
あなたのアイデアは何ですか?あなたの試みを見せてください。 –