请问怎么删除ACCESS中的重复记录

2024-11-19 06:34:06
推荐回答(3个)
回答1:

首先备份你的数据库.
然后尝试下面的方法.
从表中删除重复记录需要两个步骤.
第一步,创建包含重复项的表结构的副本,然后生成所有包含重复项的字段的主键.
第二步,创建并执行由原始表到新表的追加查询。因为主键字段不能包含重复记录,所以此过程将生成一个不含重复记录的表.
复制表并生成包含重复项的字段的主键
操作方法:
在“数据库”窗口中,单击“对象”下的“表”
单击要删除重复记录的表名称。
单击工具栏上的“复制”
单击工具栏上的“粘贴”。
在“粘贴表方式”对话框中,键入复制表的名字,再单击“只粘贴结构”选项,然后单击“确定”按钮。
在“设计”视图中打开新表,然后在复制的表中选择包含重复项的字段。
单击工具栏上的“主键”按钮
,以便根据选定的字段创建主键。
保存并关闭表。
在新表中追加唯一值记录。
操作方法:
根据包含重复项的原始表新建一个查询。
在查询“设计”视图中,单击工具栏上的“查询类型”,再单击“追加查询”。
在“追加”对话框中,在“表名称”列表中单击新表的名称,然后单击“确定”。
将星号
(*)
拖到查询设计网格,使新表包含原始表的所有字段。
单击工具栏上的“运行”。
收到追加行的信息时,请单击“是”按钮。
收到
Microsoft
Access
不能在追加查询中添加全部记录的信息时,请单击“是”按钮。这次仅将有唯一值的记录传送到新表中,并丢弃了重复项。
打开表查看结果。
确定新表有正确的唯一记录后,就可以删除原始表,然后使用原始表名来为新表重新命名。
我是学MSSQL的,所以对MSSQL更熟悉
但Access也略知一二
希望这个方法能够帮到你.
再次提醒,请先备份你的mdb
建议:
为了以后避免这些不必要的问题.
可以把不允许重复的字段设为主键.

回答2:


在大的数据库应用中,经常因为各种原因遇到重复的记录,造成数据的冗余和维护上的不便。

1.用rowid方法

2.用group by方法

3.用distinct方法
1。用rowid方法

据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:
查数据:
select * from table1 a where rowid !=(select max(rowid)
from table1 b where a.name1=b.name1 and a.name2=b.name2......)
删数据:
delete from table1 a where rowid !=(select max(rowid)
from table1 b where a.name1=b.name1 and a.name2=b.name2......)

2.group by方法

查数据:
select count(num), max(name) from student --列出重复的记录数,并列出他的name属性
group by num
having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次
删数据:
delete from student
group by num
having count(num) >1
这样的话就把所有重复的都删除了。

3.用distinct方法 -对于小的表比较有用

create table table_new as select distinct * from table1 minux
truncate table table1;
insert into table1 select * from table_new;

select sum(bag_weight),sum(bag_total) from tdespatch

回答3:

你可以用distinct进行剔重,把剔重的数据新建一张表就可以了