update [表2] set [更新列]=rq from (select id ,max([日期]) as rq from [表1] group by [表1].id) a inner join [表2] b
on a.id=b.idorupdate [表2] set [更新列]=[表1].rq where EXISTS(select id ,max([日期]) as rq from [表1] where [表2].id=[表1].id group by [表1].id)

解决方案 »

  1.   

    select count(*) from TABLE WHERE ....
    SELECT @@ROWCOUNT
      

  2.   

    UPDATE Table2 set Date=a.Date
    FROM Table1 a 
    INNER JOIN table2 b on a.id=b.id
    where a.date>b.date
      

  3.   

    update 表2
    set 列1=a.对应列1,列2=a.对应列2...
    from 
    (select * from 表1 a where 日期=(select max(日期) from 表1 where id=a.id)) a
    where 表2.id=a.id
      

  4.   

    to  dlkfth(流氓兔) :
    十分感谢,我还想请教一下,我表中还有其他的列值如何更新
    例如:还有列age,sex也是要在以上的情况下进行更新
      

  5.   

    TO happydreamer(小黑) :
    你的方法实现不成功,你测试了吗?
      

  6.   

    to  dlkfth(流氓兔) :
    请您来看下一下好吗?我是说当同一个id 中的数据有多条时,选date 大的一个。在例子中就要选(100,05/22),101(02/14) 这两行数据, 那末同时这两行数据中的其他项也要得到更新,假定还有age ,sex等列的数据,不光是更新date.
      

  7.   

    update 表二 set 时间=(select max(时间) from 表一 where id=表二.id)
      

  8.   

    update 表二 set 时间=(select max(时间) from 表一 where id=表二.id),sex=(select top 1 时间 from 表一 where id=表二.id order by 时间 desc),age=(select top 1 age from 表一 where id=表二.id order by 时间 desc)
      

  9.   

    update 表二 set 时间=A.时间, sex=A.sex, age=A.age from
     (select * from 表一 B1 where B1.id=表二.id and B1.时间=
          (select max(时间) from 表一 where id=表二.id group by id)) A
      

  10.   

    update 表二 set 时间=A.时间, sex=A.sex, age=A.age from
     (select * from 表一 B1 where B1.id, B1.时间 in
          (select top 1 id, 时间 from 表一 where id=表二.id order by 时间 desc)) A