0
我有一个表格,其中包含有关这些车辆上发生的车辆和事件的信息。 EX:仅返回历史记录表中的最大事件日期
VehicleEvent
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
我期待返回每个车辆列表最近ReturnToService如果车辆有一个,否则我想忽略它。
防爆结果:
VehicleRefNum | EventTypeCode | EventDate
3 | ReturnToService | 2016-04-21
1 | ReturnToService | 2017-07-11
它看起来像我需要的是一个子查询的WHERE子句,但我真正需要的是一些帮助。谢谢!
编辑补充:
Select VehicleRefNum, EventTypeCode, EventDate
From VehicleEvent
where VehicleRefNum = 1
and EventDate = Select max(EventDate) from VehicleEvent)
工作,但只给了我,我在寻找解决方案的一半。我需要一个可以扩展更多车辆和事件的查询。
提示:'WHERE'和'Group BY' –
我不确定性能有什么区别,但是当对大量数据进行缩放时,您还可以尝试使用'ROW_NUMBER()OVER(PARTITION BY VehicleRefNum,EventTypeCode ORDER BY EventDate DESC)AS rn ..... WHERE rn = 1'。 – Shawn
@Collatrl我注意到你不接受我的答案(看到我失去了代表)。你有问题吗? –