我創建了一個簡單的查詢,試圖找出哪些別墅會在特定天數範圍內免費(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 2011-04-10 08:51:33
表'預訂'中不應該有'villa_id'字段嗎?你怎麼知道哪個別墅是保留的? – 2011-04-10 09:50:28
這是仍然開放或您的問題已被回答? – bitxwise 2011-04-18 13:28:07