我有一张表格,上面有关于这些车辆上发生的车辆和事件的信息。 EX:
v<movement>c<functionName>(<strg>R")<esc>
VehicleEvent
如果车辆有一辆,我希望返回每辆车最近的ReturnToService列表,否则我想忽略它。
结果:
VehicleRefNum | EventTypeCode | EventDate
1 | OutOfService | 2017-06-28
2 | EngineRepair | 2016-05-15
3 | OutOfService | 2016-04-02
4 | OtherRepair | 2017-07-21
1 | ReturnToService | 2017-07-01
5 | NewToService | 2017-07-27
6 | OutOfService | 2017-05-15
3 | ReturnToService | 2016-04-21
1 | OutOfService | 2017-07-09
1 | ReturnToService | 2017-07-11
看起来我需要的是一个子查询作为WHERE子句,但我真正需要的是一些帮助。谢谢!
编辑添加:
VehicleRefNum | EventTypeCode | EventDate
3 | ReturnToService | 2016-04-21
1 | ReturnToService | 2017-07-11
会起作用但只给我一半我正在寻找的解决方案。我需要一个可以扩展更多车辆和事件的查询。
答案 0 :(得分:3)
试试这个:
SELECT VehicleRefNum, EventTypeCode, MAX(EventDate) EventDate
FROM VehicleEvent
WHERE EventTypeCode = 'ReturnToService'
GROUP BY VehicleRefNum, EventTypeCode
WHERE
会将结果限制为您感兴趣的EventTypeCode
。然后,您希望将结果推广到常用的VehicleRefNum / EventTypeCode
组合上使用GROUP BY
,并且仅查看每个MAX(EventDate)
。