Как я могу найти минимальное значение из повторяющихся номеров строк? - PullRequest
1 голос
/ 26 июня 2019

Мне нужно найти минимальное значение даты для 'LastUpdatedAt', но только между тем же идентификатором строки

Я создал временную таблицу '#results', включающую поля 'rowId' и 'LastUpdatedAt'. Мне нужно найти минимальную дату для RowId. Например, если есть две записи с rowId '9', я должен найти LastUpdatedAt, который произошел первым. Я попытался использовать MIN (LastUpdatedAt), но он возвращает только минимальную дату для всей таблицы.

create table #results(
    RowId       id_t,
    LastUpdatedAt date_T
)


insert into #results
select H.RowId, H.LastUpdatedAt from MemberCarrierMap M Join MemberCarrierMapHistory H on M.RowId = H.RowId

select * from #results


RowId   LastUpdatedAt

9       2010-01-21 17:07:48.640
9       2018-05-14 13:33:04.313
88      2016-11-22 14:49:13.770

update MemberCarrierMap 
set CreatedAt = (select MIN(LastUpdatedAt) from #results)
Where CreatedAt is null

Я пробовал это, но он находит только минимум для всей таблицы. Есть ли в любом случае просто найти минимальную дату для одного rowID?

1 Ответ

1 голос
/ 26 июня 2019

Требуется условие корреляции:

update MemberCarrierMap 
set CreatedAt = (select MIN(LastUpdatedAt) from #results r where r.rowId = MemberCarrierMap.rowId)
Where CreatedAt is null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...