两个表数据复制到一个表A了,可是怎么删除db.mdb表A中重复的记录?有什么好方法?
比如
有一个ACCESS数据表A如下   
ID Name Score    
01 老张   80   
01 老李   70
01 老李   80
02 王二小 70   
01 老张   80   
04 李小黑 90 
02 王二小 70  ====================   
现在我想删除 字段 ID Name Score 都重复的记录,达如下效果:   
ID Name Score   
01 老张   80  
01 老李   70
01 老李   80
02 王二小 70   
04 李小黑 90  
表中没有主键?是不能设主键的

解决方案 »

  1.   

    这只是一个例表,当然表A远不只有这ID Name Score 三个字段,我是要根据前面几个字段值来判断是不是重复记录了
      

  2.   

    select distinct * into b from a
    drop table a
    select * into a from b
    drop table b
      

  3.   

    a,b是两个表名?
    我现在是要在同一个a表里面除重复记录,不是两个表
      

  4.   

    只能说表设计有问题access没有唯一的标识,不能一次删除重复的数据,要通过前台删除或者再建一个表做为过渡吧
    不像mssql有identity列,也有临时表,操作起來很容易你找出区别他们的信息了,再帮你
      

  5.   

    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text :='select distinct * into b from a  drop table a  (select * into a from b  drop table b)';
    在delphi中按钮单击事件里面怎么写?我这样写之后,表A里面的重复数据并没有删除掉啊
      

  6.   

    into a//这里是做为临时表来操作的,执行了上述语句后最终还是原来的一个表。
      

  7.   

        ADOQuery1.SQL.Text :='SELECT 字段1,字段2,字段3,Count(*)into #Tmp FROM A Group by 字段1,字段2,字段3 Having Count(*)> 1';
        ADOQuery1.Open ;
        try
             While not ADOQuery1.Eof do
             begin
             ADOQuery1.SQL.Add('delete   from (select 字段1,字段2,字段3,rn = row_number() over (partition by 字段1,字段2,字段3 order by 字段1,字段2,字段3) from  @table)  where rn > 1');
             end;
          finally
              ADOConnection1.Close;
          end;这样也不行,思路有点乱,请高手指教!
      

  8.   

    复制时就应该保证内容不重复,select ID, Name, Score, from 表1 where ID+Name+Score not in (select ID+Name+Score from 表2)类似这样处理,你复制完的表就不应该重复,已经有一部分字段内容重复然后再处理比较麻烦
      

  9.   

    要不你就给这张表建一个自动增长的 ID2,
    Delete A where ID2 not in (select MAX(ID2) from A group by ID,NAME,SCORE)