2013-05-06 24 views
1

我有一个表是一个日期时间列的表。任何人都可以建议我,如果有一种方法可以找到接下来的20条记录,那么从我找到前两条记录的时间大于120秒时开始?这可能吗?...检索一些具有前两个日期差异超过120秒的SQL行

它就像找到坐标列表的第一站。

在此先感谢大家!

干杯, 路易吉

+3

你能提供的示例数据,预期效果和标记,您正在使用的RDBMS的版本问题? – 2013-05-06 08:48:24

回答

1
Select top 20 * from Log 
where dt >= (select Min(DT) from Log l -- not sure what you are looking for >= or = 
      where Exists(Select * from Log l2 
         where DateDiff(ss,l.DT,l2.DT)>120 
         and l.DT=(Select max(DT) from Log l3 where l3.DT<l2.DT) 
         )) 

SQL-Fiddle

+0

你好bummi,首先感谢你的答案看起来不错,但在表中,我也有一个server_id过滤器,因为它是一个巨大的表,所以试图得到一个错误:两个日期时间列的差异导致运行时溢出(295,357秒) - 我必须说,如果我这样做:从日志选择顶部23 *其中server_id = 2222当我需要从最新的开始确实像增加“order by 1 desc” – Luigino 2013-05-06 13:43:51