通过关键字比较2张表的记录(这2张表的字段可能不同,但是关键字相同),2张表都有一个标识记录更新日期的字段lastmodify,要求用一张表中最新的记录去更新另一张表中关键字对应的记录,
请大家给个思路,谢谢.(不一定用sql实现)

解决方案 »

  1.   

    update a
    set col1=b.col1,
        col2=b.col2,
        .....
    from tablea a inner join 
    (
    select t1.*
    from tableb t1
    inner join
    (
    select keycol1,keycol2,max(datecol) as datecol
    from tableb group by keycol1,keycol2
    )t2
    on t1.keycol1=t2.keycol1
    and t1.keycol2=t2.keycol2
    and t1.datecol=t2.datecol
    )b
    on a.keycol1=b.keycol1
    and a.keycol2=b.keycol2
      

  2.   

    update 另一张表
    set 另一张表.lastmodify=一张表.lastmodify
    from 一张表
    where 另一张表.关键字=一张表.关键字
      

  3.   


    现在是用表A的数据去更新表B的数据,但是A的数据不一定比B的新,需要比较记录的更新日期表A和表B可能不在一个数据库中
      

  4.   

    update b
    set col1=a.col1,
        col2=a.col2,
        .....
    from a
    where a.id=b.id and a.lastmodify > b.lastmodify (日期比较大小可以这样吗?)
      

  5.   

    不在一个库也没有关系,用数据库名.dbo.表名。