Как найти первую дату в массиве по каждому ID MS SQL
Всем добрый вечер!
Подскажите, как найти первую дату по такому условию (нужно вычислять для каждого уникального ID): --> Если все даты в поле "Дата оплаты" < "Дата заказа", то "Дата заказа" --> Если есть "дата заказа" > "Дата оплаты", то выбрать наименьшую "Дата заказа", которая > "Дата оплаты"
На скриншоте пример данных запроса по 2-м ID. В 4-м столбце (выделен оранжевой рамкой):
- для первого ID должна быть дата "2022-07-04 11:45:22.000"
pay.[Request_ID]
,pay.[Period] as 'Дата оплаты'
,rq.[Period] as 'Дата заказа'
,min (iif (pay.[Period]>rq.[Period],pay.[Period],rq.[Period])) over (partition by pay.[Request_ID])
,iif (pay.[Period]>rq.[Period],pay.[Period],rq.[Period])
from [dbo].[Settlement] pay
left join [dbo].[Request] rq on rq.Request_ID = pay.Request_ID
where pay.Period >='20220101'
and pay.Request_ID in (0x845500505695E8DC11ECFB6FF62DAF06,0x845800505695E8DC11ED455732D595C0)
group by pay.[Request_ID],pay.[Period],rq.[Period],iif (pay.[Period]>rq.[Period],pay.[Period],rq.[Period])````
[1]: https://i.sstatic.net/idlFW.png
Источник: Stack Overflow на русском