Access重复记录处理方法
6 N/ g$ d) H& a在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法! 8 r6 U) |, a4 v U
1列出表中的重复记录) m4 }, ?: Y# |0 ~' y, F$ j. {9 I
(sameoda)
( o; \+ k' O2 l: U SELECT [2].[地级市], Count(*) AS 记录数FROM 2GROUP BY [2].[地级市]HAVING count(*)>1ORDER BY [地级市];
* F! @+ y. t0 \. C 地级市记录数100000951094210000095111621000009511272100000951138210000095114921000009511502/ j3 X6 h) q4 \' L/ z* H/ e2 u3 s
2以下是除去相同记录的过程" U' F: B/ l" q& c3 s5 D8 {
1)列出表中的所有重复记录1 o9 V& K3 \+ m8 @
(表2中重复记录)/ r" @" X8 `4 O3 T
SELECT 2.*FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];
0 p; Q! T) R/ z) K! g( l3 E4 { ID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨' F' i# V; k6 J! y$ M8 `. t& A5 M5 { J
2)从重复记录中找到唯一的一条记录8 x" J [$ T7 ?6 n0 Q! c- E6 ^& k# E
minbihanhao! I, _- q3 G& e8 M: T8 z' _
SELECT 2.*FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]WHERE [表2中重复记录].[id] Is Null;
( A7 B5 f& D* g( @2 J* ^7 O 地级市id1000009510945351100000951116535010000095112753531000009511385354100000951149535210000095115053559 O0 W+ J: H% w9 ~1 s
3)显示唯一记录的全部信息
/ Q9 f, f$ |# A7 G* D9 A/ o allsame1
; H0 w+ K/ l# G1 o2 i2 P( e: | SELECT 2.*FROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])WHERE [minbihanhao].[地级市] Is Not NullORDER BY [2].[id];+ B; O& q6 E& E j) L2 s& u1 `; N
4)在原表中除去所有相同的记录. |1 A- v, a }7 G X
dropsame2" f7 P6 ]7 w( v( _. |! c
SELECT 2.*FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]WHERE [表2中重复记录].[id] Is Null;, b( k" ?3 v4 ^% x' Q3 h# }! x
5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息
* R2 }8 _% t' q1 @6 C- A' D- y2 A, m 表2除去重复记录
9 i4 o9 O4 U ]: X SELECT *FROM dropsame2 UNION select * fromallsame1; |