我需要找到“ LastUpdatedAt”的最小日期值,但只能在相同的rowId之间找到
我制作了一个临时表“ #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的最短日期吗?
答案 0 :(得分:1)
您想要一个相关子句:
update MemberCarrierMap
set CreatedAt = (select MIN(LastUpdatedAt) from #results r where r.rowId = MemberCarrierMap.rowId)
Where CreatedAt is null;