我需要编写一些 SQL 来查找发生在同一个房间内的重叠日期范围。例如,我有字段 room_num、start_time 和 stop_time。每条记录代表在该 room_num 中发生的一个会话。我需要找出是否有任何具有相同房间号的会话会相互重叠。
问问题
824 次
1 回答
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
如果between不起作用(可能是 Oracle 特定的),请将其重写为两个单独的 >= 和 <= 条件。
于 2013-08-15T23:39:36.270 回答