我创建了一个简单的查询,试图找出哪些别墅会在特定天数范围内免费(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