SQL计划-超量预订报表

问题描述

| 我需要一种查看超额预订的给定资源(在本例中为房间/床)的方法。这是我的表格结构。抱歉,匈牙利符号: 房间 --RoomID 预订 --BookingID --BeginDate - 结束日期 --AssignedRoomID(外键) 我没有任何无法正常运行的SQL,因为我真的不知道从哪里开始。我正在使用MS Access,但如果可能的话,我正在寻找与数据库无关的解决方案。不必更改某些关键字以匹配给定SQL引擎的方言就可以了,但是我想避免使用专有的或仅在一个RDBMS中可用的其他功能。 我意识到最好从一开始就避免预订过多,但这不是这个问题的重点。 如果有帮助,我几天前发布了一个相关问题,关于如何查找给定数据范围内尚未预订的资源。您可以在这里看到该问题。 编辑1: 为了回答下面的答案,我对SQL进行了一些修改,以使其可以在Access中使用,并且在检测冲突时更加准确。如果我没有答应,下面发布的解决方案不会引起一些冲突,但是当给定的Booking's EndDate和另一个Booking \ BeginDate落在同一天时,这也会显示冲突,这实际上是允许的,不应显示为冲突。我是否正确理解这一点,或者我在这里缺少什么?
SELECT
  *
FROM
  tblBooking AS booking
INNER JOIN
  tblBooking AS conflict
    ON  [conflict].AssignedRoomID = [booking].AssignedRoomID
    AND (([conflict].BeginDate >= DateAdd(\"d\",-1,[booking].BeginDate) AND [conflict].BeginDate < [booking].EndDate)
    OR  ([conflict].EndDate > [booking].BeginDate AND [conflict].EndDate < [booking].EndDate))
    AND [conflict].BookingID <> [booking].BookingID
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)