我需要编写一些SQL来查找在同一个房间内发生的重叠日期范围。例如,我有字段room_num,start_time和stop_time。每条记录代表在该room_num中发生的会话。我需要查找具有相同房间号的任何会话是否会相互重叠。
答案 0 :(得分:0)
你可以尝试这样的事情。请注意 - 我还没有测试过!
select e1.room_num,
e1.start_time, e1.stop_time
e2.start_time, e2.stop_time
from events e1, events e2
where
(e1.start_time between e2.start_time and e2.end_time
or e1.end_time between e2.start_time and e2.end_time)
and e1.room_num = e2.room_num
如果之间的不起作用(可能是Oracle特定的),请将其重写为两个单独的> =和< =条件。