【发布时间】:2020-11-11 01:32:50
【问题描述】:
我们的存储系统已满。我正在尝试识别存储系统中当前处于“非活动”状态的项目(很长时间没有移动)。有了这个,我将有一种简单的方法来确定我可以从系统中删除哪些项目,从而为活动项目释放这些位置。我想要一个查询,它将向我显示每个项目的最后一次移动日期(每个唯一项目一个结果)。这有意义吗?
我有 2 个表,需要使用 item_id 连接。
运动日志:
item_id time operation container quantity
A 2020-01-01 11:00:00.000 Load 1 90
B 2020-01-01 13:00:00.000 Load 2 30
C 2020-01-02 09:00:00.000 Load 3 10
D 2020-01-03 15:00:00.000 Load 4 7
E 2020-01-03 15:30:00.000 Load 6 220
A 2020-01-03 16:00:00.000 Load 5 20
B 2020-01-03 17:00:00.000 Unload 2 10
C 2020-01-04 09:00:00.000 Load 3 5
D 2020-01-05 11:00:00.000 Unload 4 2
D 2020-01-06 11:00:00.000 Unload 4 2
B 2020-01-06 12:00:00.000 Unload 2 10
A 2020-01-06 13:00:00.000 Unload 1 10
E 2020-01-06 14:00:00.000 Unload 6 220
current_item_positions:
item_id container quantity
A 1 80
B 2 10
C 3 15
D 4 3
A 5 20
C 3 15
查询结果:
item_id last_movement last_operation
C 2020-01-04 09:00:00.000 Load
D 2020-01-06 11:00:00.000 Unload
B 2020-01-06 12:00:00.000 Unload
A 2020-01-06 13:00:00.000 Unload
关于如何实现这一点的任何想法?
【问题讨论】:
标签: sql sql-server database where-clause greatest-n-per-group