-1

我需要编写一些 SQL 来查找发生在同一个房间内的重叠日期范围。例如,我有字段 roo​​m_num、start_time 和 stop_time。每条记录代表在该 room_num 中发生的一个会话。我需要找出是否有任何具有相同房间号的会话会相互重叠。

4

1 回答 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 回答