检索一个表中每个对象实体最新状态(根据时间字段)的记录去更新另一个表中对应实体的记录
查询一个动态表中相应ID对象的最新的记录信息去更新另一个表中相关的字段信息,两个表结构如下:
Table_A (ID, LatestTM, LatestData)
Table_B (ID, TM, Data)
表A中始终存储比如只有三个实体对象对应的最新的数据信息,即表A中始终只有三条记录表示每个对象的最新的数据信息,而表B中是动态增加数据的,存储的是和表A中对应的三个实体对象不断插入的新的时刻的数据信息,现在需要从表B中查询提取每个ID对象对应的最新的记录(根据TM时间字段获取)去对应更新表A中对应的ID对象的信息,即更新为最新状态的记录,如果表B中没有对应的ID的记录则不更新。
如下:
update Table_A set LatestTM = U.TM, LatestData = U.Data from
(
select * from Table_B inner join
(
select MAX(TM) NEWESTTM from Table_B GROUP BY STCD
)
V on DRP.TM = V.NEWESTTM
) U WHERE Table_A.ID = U.ID