gpt4 book ai didi

SQL MAX(DATE) 订单号

转载 作者:行者123 更新时间:2023-12-04 13:38:37 26 4
gpt4 key购买 nike

我有以下查询:

SELECT o.ClientId, o.MAX(Date), o.OrderNumber
FROM dbo.tblOrders
GROUP BY o.ClientId, o.OrderNumber

这仍然给了我所有的订单号,我如何只获得与 MAX 日期一致的订单号。

我想要完成的是获取每个客户的最大订单日期并显示订单号。

谢谢

最佳答案

SELECT t.ClientId, t.MaxDate, o.OrderNumber
FROM (SELECT ClientId, MAX(Date) as MaxDate
FROM dbo.tblOrders
GROUP BY ClientId) t
INNER JOIN dbo.tblOrders o
ON t.ClientId = o.ClientId
AND t.MaxDate = o.Date

如果您使用的是支持窗口函数的 RDBMS,例如 SQL Server 2005+,也可以这样做:
SELECT t.ClientId, t.OrderNumber, t.Date
FROM (SELECT ClientId, OrderNumber, Date,
ROW_NUMBER() OVER(PARTITION BY ClientId ORDER BY Date DESC) as RowNum
FROM dbo.tblOrders
) t
WHERE t.RowNum = 1

关于SQL MAX(DATE) 订单号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992917/

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