是否可以在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
如果您只想要订单 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