tabAn(n=1,2,3,4....)
fld1,fld2,fld3tabB
fld1,fld2tabAn是每天成的表,数据几百条左右,fld1,fld2有重复的,无索引,fld3是时间
现要每天将tabAn表中的记录放到tabB中,要求tabB中fld1不重复,且fld2是最新的另:tabAn只有select权限,每天完成后要保证tabB的fld1有索引

解决方案 »

  1.   

    insert into tabB 
    select t.f1,t.f2 from taban t
    where exists (select '1' from ( select f1,max(rowid) from taban group by f1) t2
    where t.f1=t2.f1 and t.rowid=t2.rowid);试试看。
      

  2.   

    Insert into tabB(fld1,fld2)
    Select fld1,fld2 from tabAn a
    where not exists(Select * from tabAn
       Where fld1=a.fld1 and fld3>a.fld3)
      

  3.   

    谢谢两位,但逻辑上有点问题
    tabAn中的f1,f2肯定是比tabB中的新。第一天这样可以,以后还要对tabB作更新的
      

  4.   

    新增+更新,用merge语句来实现
      

  5.   

    用rowid应该就是最高效的了,否则你可以建临时表来解决