航空论坛_航空翻译_民航英语翻译_飞行翻译

 找回密码
 注册
搜索
查看: 1405|回复: 0
打印 上一主题 下一主题

access处理重复记录的方法 [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-11-10 10:55:59 |只看该作者 |倒序浏览
在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?! z- c* z8 D  m* F* o  {
本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!3 k0 A; k+ r1 G4 h4 V! ]
1列出表中的重复记录% }8 u3 e8 q6 P7 `/ Q9 F- U! D
(sameoda)0 T* d" R) {& F  j
SELECT [2].[地级市], Count(*) AS 记录数! s+ _! T' ~3 U5 e6 H' H  f
FROM 2
% o# _2 s1 u0 y  P; N* k8 N2 H, ^GROUP BY [2].[地级市]
& ]. i% P& v: wHAVING count(*)>1
% L' O2 `# ^# |& _ORDER BY [地级市];" e( c9 w" c! @; h/ Y
地级市记录数100000951094210000095111621000009511272100000951138210000095114921000009511502' c) H- o( _, L- H# e+ z  F1 d
2以下是除去相同记录的过程* R! z; Z# q5 Y) u
1)列出表中的所有重复记录
8 z% {* i6 M* q% s" I(表2中重复记录)
" G0 g1 }1 r& R$ M4 CSELECT 2.*
& I$ f5 ~6 v& b4 g. eFROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];& z( q$ n  }+ D% o* p# Z- n
ID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨5 y! q' i, J% I" U7 O
2)从重复记录中找到唯一的一条记录8 s& t( b9 G- u  D
minbihanhao* ^8 G4 y  \% T
SELECT 2.*
# ?  n2 l" V9 k) M6 S: S. r% _9 PFROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
" y% |: v) l# a% n+ m3 p5 a6 ~WHERE [表2中重复记录].[id] Is Null;1 o+ S7 Z( N, f- a
地级市id1000009510945351100000951116535010000095112753531000009511385354100000951149535210000095115053554 Z6 c# `. c* b2 N3 S. i8 P: ^
3)显示唯一记录的全部信息8 q5 A0 U4 b/ D" f: z
allsame1. ~3 P4 i* \& i
SELECT 2.*$ h! S+ w2 k0 r( W+ u" a4 W" l
FROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])) S$ y1 |3 y7 i. U
WHERE [minbihanhao].[地级市] Is Not Null6 [/ ]8 G) `& t, Y+ d
ORDER BY [2].[id];
# G5 {- m! e8 X6 S/ O  d9 k9 b5 y" u7 |7 C) ]5 ~; l
4)在原表中除去所有相同的记录
; j6 G. w+ K  S) H# cdropsame2
: E& X# ]9 ^0 x% ?6 r- Z8 CSELECT 2.*( v, g6 Z; ?5 ~. B# ?
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
  v  o/ P1 M5 H. xWHERE [表2中重复记录].[id] Is Null;6 L* @% H2 v/ d6 ~
5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息
$ h/ v( V0 b7 B9 d& G表2除去重复记录4 y7 u5 j/ @$ Z4 A8 N2 y( N. B
SELECT *
9 w) b# n2 ]5 {- e5 Z8 rFROM dropsame2
2 r. T" w' E$ b  V  J' cUNION select * from! s* x3 f. m3 p" _! R9 x
allsame1;
您需要登录后才可以回帖 登录 | 注册


Archiver|航空论坛 ( 渝ICP备10008336号 )

GMT+8, 2025-11-27 01:53 , Processed in 0.022001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部