我想请您帮忙构建一条 ORACLE SQL 语句:
使用工作表如下
Object | Operation | Time
A | Move | 12:01
B | Move | 12:02
C | Pickup | 12:03
D | Move | 12:04
B | Pickup | 12:05
得到如下结果表。
Object | Operation | Time | Cause
A | Move | 12:01 | C
B | Move | 12:02 | C
D | Move | 12:04 | B
这是为了弄清楚哪个 Pickup 操作导致了每个 Move 操作。
“原因”列必须包含移动操作旁边时间最短的取件作业记录的对象。
我有以下一些想法,但不知道如何去做。
-。它需要在 Move 的子查询和 Pickup 的子查询之间使用 join 语句
。Pickup 的子查询必须按要加入的移动记录进行分区
-。只能从 Pickup 子查询的每个分区中选择顶部记录