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)
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)
SELECT @@ROWCOUNT
FROM Table1 a
INNER JOIN table2 b on a.id=b.id
where a.date>b.date
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
十分感谢,我还想请教一下,我表中还有其他的列值如何更新
例如:还有列age,sex也是要在以上的情况下进行更新
你的方法实现不成功,你测试了吗?
请您来看下一下好吗?我是说当同一个id 中的数据有多条时,选date 大的一个。在例子中就要选(100,05/22),101(02/14) 这两行数据, 那末同时这两行数据中的其他项也要得到更新,假定还有age ,sex等列的数据,不光是更新date.
(select * from 表一 B1 where B1.id=表二.id and B1.时间=
(select max(时间) from 表一 where id=表二.id group by id)) A
(select * from 表一 B1 where B1.id, B1.时间 in
(select top 1 id, 时间 from 表一 where id=表二.id order by 时间 desc)) A