检索一个表中每个对象实体最新状态(根据时间字段)的记录去更新另一个表中对应实体的记录

查询一个动态表中相应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 

posted on 2013-08-19 16:36  摩根鱼  阅读(201)  评论(0编辑  收藏  举报

导航