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

标题: access处理重复记录的方法 [打印本页]

作者: 帅哥    时间: 2009-11-10 10:55:59     标题: access处理重复记录的方法

在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?+ H9 S8 M; \  ], O9 a' y5 p8 P* G
本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!8 z5 s0 d( `* y) X: |
1列出表中的重复记录
! m' }( c! r. R8 ~(sameoda)# |/ }1 g+ v5 M2 a3 @9 e& f
SELECT [2].[地级市], Count(*) AS 记录数' N+ s: v% y) A4 p# T
FROM 21 N" r( ^$ J& v2 N: l: z: z& E
GROUP BY [2].[地级市]
7 e+ n6 Z$ _/ B! L" g3 @: cHAVING count(*)>1
! x7 s* o; C- F1 y: F$ ^ORDER BY [地级市];3 z+ v  [9 ^1 z9 ]$ b
地级市记录数100000951094210000095111621000009511272100000951138210000095114921000009511502) W/ y3 u* z- {# f1 \" a2 F
2以下是除去相同记录的过程
" B! W$ E5 I  q0 Y: x1)列出表中的所有重复记录
9 M" O/ M  C* s' p7 |3 `5 S(表2中重复记录)
0 Y  f* l  `' C$ D7 KSELECT 2.*, J. o& F8 k) {/ \
FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];
8 x0 ?$ y4 |7 F; i4 ?ID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨
& F) Y; ~$ E. X0 m2)从重复记录中找到唯一的一条记录
; }6 @% |# C9 Ominbihanhao7 f, Y. _5 v7 i- L: I/ a( V) Z
SELECT 2.*, o% r  {" U1 m& Z
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
- p8 R. C: v0 s1 v6 xWHERE [表2中重复记录].[id] Is Null;  G' l' C$ S! ^4 [1 }* `8 X+ F
地级市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355
+ Y% e/ ^4 w6 V2 M3)显示唯一记录的全部信息; G; D% W% j& }, a
allsame1: `2 p! E: ?+ Y6 A
SELECT 2.*& S2 N9 |" N6 S
FROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])
& o3 M' P' M' ]! N  @, U; V6 C& pWHERE [minbihanhao].[地级市] Is Not Null# B' g( G2 t0 g' T, h1 r1 }; R) p
ORDER BY [2].[id];
  h7 ~) C; J- g# W
$ y( N" V# j8 ^9 T7 h+ H* v4)在原表中除去所有相同的记录
1 Z, D4 H. D0 `& R) U; K& Edropsame28 [# w" m# d& r/ T. t' K  T
SELECT 2.*
; C/ {5 Y# V- X0 l2 E4 IFROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]; ^! ?3 i' z9 r+ A# ^2 V
WHERE [表2中重复记录].[id] Is Null;
+ U! ^8 W$ d, T4 L; ^9 W0 D5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息
( S9 c. _( ?2 G  M% n表2除去重复记录
4 @/ C# t6 O- E  n' d; [( N3 ZSELECT *" C2 g( I1 e8 D3 e3 V9 b4 m2 ~  t, n& U; E
FROM dropsame2 $ ?5 ^% V9 q9 L( ?: o
UNION select * from
! x! g4 p8 u, H0 B  V' [. d2 n allsame1;




欢迎光临 航空论坛_航空翻译_民航英语翻译_飞行翻译 (http://bbs.aero.cn/) Powered by Discuz! X2