簡體   English   中英

列出2009年5月,6月和7月幾個月價格超過8000美元的預訂房間

[英]Give a list of booked rooms for months of May, Jun And July 2009, having price greater than 8000 per day

桌子

Hotel    (hotelNo, HotelName, city)

Room     (roomNo, hotelNo, type, price)

Booking  (hotelNo, guestNo, dateFrom, dateTo, roomNo)

Guest    (guestNo, guestName, guestAddress)

根據上表,為以下查詢提供結構化查詢語言語法:

列出2009年5月,6月和7月幾個月價格超過8000美元的預訂房間。

我嘗試了以下操作,但不起作用:

SELECT *
FROM Booking 
WHERE HotleNo IN (SELECT HotelNo FROM Room WHERE Price>8000)
AND (DateFrom>= '2009-05-01' AND dateTo<= '2009-07-31');

價格是“房間”屬性而不是“酒店”屬性。 但我想您可能正在處理幾間客房號重疊的酒店,因此您必須將roomNo和hotelNo匹配

SELECT *
FROM Booking 
JOIN Room on Booking.roomNo=Room.roomNo and Booking.hotleNo=Room.hotleNo
WHERE Room.Price>8000
AND Booking.DateFrom>= '2009-05-01' 
AND Booking.dateTo<= '2009-07-31'

編輯:在您的問題字段是hotleNo,所以我會堅持該字段名稱

您可以嘗試以下方法。 由於您需要的所有信息都可以從BookingRoom表中檢索到,因此您只需將2加入並獲取數據。

select B.* from Booking B
left outer join Room  R   
on    R.roomNo   = B.roomNo
where B.dateFrom >= '2009-05-01'
and   B.dateTo   <=   '2009-07-31'
and   R.price    > 8000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM