gpt4 book ai didi

用于查找订单最后一个事件状态的 SQL 查询

转载 作者:行者123 更新时间:2023-12-04 23:52:02 25 4
gpt4 key购买 nike

我有两个表(在 SQL Server 数据库中)如下:

TblOrders
OrderID (PK)
(some more fields)

TblEvents
EventID (PK)
OrderID (FK) (linked to OrderID of TblOrders)
EventDate
Status



TblEvents 中的每个事件都属于 TblOrders 中的一个订单,并且每个事件都有一个日期和一个“状态”(一个数字代码)。一个订单可能有多个事件(至少一个)。

我需要一个 SQL 查询,为 TblOrders 中的每个 OrderID 查找其所有事件中最新事件的状态。例如:

输入表:

订单
==========
订单号
1
2
3

表事件
==========
EventID OrderID EventDate 状态
1 1 01/02/2011 4
2 1 02/02/2011 2
3 2 03/02/2011 2
4 3 03/02/2011 3
5 2 01/02/2011 1

查询结果:

订单 ID 状态
1 2
2 2
3 3

(OrderID 2 具有状态 2,因为它有两个事件,3 和 5,其中最新的是具有状态 2 的事件 3。)

我希望我已经清楚地解释了自己。我已经尝试编写查询很长时间,但找不到解决方案,因此欢迎任何帮助或提示。

最佳答案

select a.OrderID, e.Status
from (
select o.OrderID, max(e.EventDate) latestDate
from TblOrders o
inner join TblEvents e on o.OrderID = e.OrderID
group by o.OrderID
) a
inner join TblEvents e on e.OrderID = a.OrderID
where e.EventDate = a.latestDate

关于用于查找订单最后一个事件状态的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5169766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com