【发布时间】:2012-01-16 05:24:26
【问题描述】:
我正在尝试使用 SQL 根据一个条目与下一个条目之间的时间差来选择不同的数据条目。用一个例子更容易解释:
我的数据表有
Part DateTime
123 12:00:00
123 12:00:05
123 12:00:06
456 12:10:23
789 12:12:13
123 12:14:32
我想返回所有行,但如果有多个条目具有相同的“零件”编号,我只想检索那些至少相差 5 分钟的条目。
查询应该返回:
Part DateTime
123 12:00:00
456 12:10:23
789 12:12:13
123 12:14:32
我使用的代码如下:
SELECT data1.*, to_char(data1.scan_time, 'yyyymmdd hh24:mi:ss')
FROM data data1
where exists
(
select *
from data data2
where data1.part_serial_number = data2.part_serial_number AND
data2.scan_time + 5/1440 >= data1.scan_time
and data2.info is null
)
order by to_char(data1.scan_time, 'yyyymmdd hh24:mi:ss'), data1.part_serial_number
不幸的是,这不起作用。有谁知道我做错了什么或可以提出替代方法?
谢谢
【问题讨论】:
-
我想知道您是否尝试过我的方法。是不是太简单了?