如何让mysql只返回最新的订单号和日期组合?



我在Metabase中有一个表,它有列Called"订单号""订单结束日期";。如果订单的截止日期被推到了以后的日期,那么该订单号将同时出现在原始截止日期和日期中;在新的一个。(例如,如果订单10本应在2022年9月12日关闭,但实际上在2022年12月9日关闭,则该表同时包含|2022年9月12日| 10 |条目&|2022年9月22日| 10 |条目(。

我需要得到我的查询只返回订单号&对应的9月份的最新截止日期(因此,对于上述示例,它将是2022年9月22日(。我尝试使用这个查询:

Select 
distinct(order_number) as "Order Number", 
max(order_close_date) as "Close date"
From orders
Where order_close_date>='2022-09-01' and order_close_date<= '2022-09-30'

我不太确定为什么,但查询返回所有订单号,包括重复的订单号(所以2022年9月12日和2022年9日22日的订单号都是10,我想这意味着它将其视为单独的订单,因为它们有不同的截止日期(&还返回每个订单的"关闭日期"列,该列填充了9月的最新日期(2022年9月30日(,而不是该特定订单的最晚日期。

我不太确定如何修复这个查询,这样它就会返回我需要的输出&如果有任何建议,我们将不胜感激!

听起来你想GROUP BY订单。

尝试

SELECT 
order_number AS 'Order Number', 
MAX(order_close_date) AS 'Close date'
FROM orders
WHERE order_close_date >= '2022-09-01' AND order_close_date <= '2022-09-30'
GROUP BY order_number

最新更新