access处理重复记录的方法

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?

本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!

1列出表中的重复记录

(sameoda)

SELECT [2].[地级市], Count(*) AS 记录数

FROM 2

GROUP BY [2].[地级市]

HAVING count(*)>1

ORDER BY [地级市];

地级市记录数100000951094

2

100000951116

2

100000951127

2

100000951138

2

100000951149

2

100000951150

2

2以下是除去相同记录的过程

1)列出表中的所有重复记录

(表2中重复记录)

SELECT 2.*

FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];

ID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到7469

1466

100000951094

苯扎贝特片、水飞蓟宾胶囊

3箱

18600

天津

佳木斯

5351

1077

100000951094

苯扎贝特片、水飞蓟宾胶囊

3箱

18600

天津

佳木斯

5350

1076

100000951116

水飞蓟宾胶囊

5箱

29000

天津

乌鲁木齐

7468

1465

100000951116

水飞蓟宾胶囊

5箱

29000

天津

乌鲁木齐

5353

1079

100000951127

氟他胺片

4箱

66800

天津

哈尔滨

7471

1468

100000951127

氟他胺片

4箱

66800

天津

哈尔滨

2)从重复记录中找到唯一的一条记录

minbihanhao

SELECT 2.*

FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]

WHERE [表2中重复记录].[id] Is Null;

地级市id100000951094

5351

100000951116

5350

100000951127

5353

100000951138

5354

100000951149

5352

100000951150

5355

3)显示唯一记录的全部信息

allsame1

SELECT 2.*

FROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])

WHERE [minbihanhao].[地级市] Is Not Null

ORDER BY [2].[id];

4)在原表中除去所有相同的记录

dropsame2

SELECT 2.*

FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]

WHERE [表2中重复记录].[id] Is Null;

5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息

表2除去重复记录

SELECT *

FROM dropsame2

UNION select * from

allsame1;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有