如何根据条件选择最早的日期

问题描述 投票:0回答:1

是否可以在Sub_ID的Status为Open或Complete的情况下,从下表中选择最早的Open_Date?

订单_ID 子_ID 开放_日期 关闭_日期 状态 状态_更新_日期
5555 001 2018-07-16 打开 2018-07-16
5555 001 2018-07-16 2022-03-01 取消 2022-03-01
5555 002 2022-03-25 打开 2022-03-25
5555 002 2022-03-25 2022-03-28 完成 2022-03-28
5555 003 2022-05-01 打开 2022-05-01

上面示例的结果应该是 2022-03-25 (Sub_ID 002),因为 Sub_ID 001 最终被取消,尽管 001 确实有 Open_Date。

运行一个简单的 MIN 查询只会给我 2018-07-16 的结果,我真的不知道如何编码以省略 2018-07-16 并返回 2022-03-25。

SELECT 
    MIN (Open_Date) 
FROM 
    (SELECT 
         Order_ID, Sub_ID, Open_Date, Close_Date, Status, Status_Update_Date 
     FROM 
         Orders 
     WHERE 
         Order_ID = 5555) AS X
sql-server date tsql min
1个回答
0
投票

如果您只想要订单 5555 的第一个开放日期(订单已完成),您可以使用

 SELECT TOP 1
     Order_ID, Sub_ID, Open_Date, Close_Date, Status, Status_Update_Date 
 FROM 
     Orders 
 WHERE 
     Order_ID = 5555 AND Status = Complete
 ORDER BY Open_Date ASC
© www.soinside.com 2019 - 2024. All rights reserved.