航空论坛_航空翻译_民航英语翻译_飞行翻译
标题:
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 2
1 N" r( ^$ J& v2 N: l: z: z& E
GROUP BY [2].[地级市]
7 e+ n6 Z$ _/ B! L" g3 @: c
HAVING count(*)>1
! x7 s* o; C- F1 y: F$ ^
ORDER BY [地级市];
3 z+ v [9 ^1 z9 ]$ b
地级市
记录数
100000951094
2
100000951116
2
100000951127
2
100000951138
2
100000951149
2
100000951150
2
) W/ y3 u* z- {# f1 \" a2 F
2以下是除去相同记录的过程
" B! W$ E5 I q0 Y: x
1)列出表中的所有重复记录
9 M" O/ M C* s' p7 |3 `5 S
(表2中重复记录)
0 Y f* l `' C$ D7 K
SELECT 2.*
, J. o& F8 k) {/ \
FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];
8 x0 ?$ y4 |7 F; i4 ?
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
天津
哈尔滨
& F) Y; ~$ E. X0 m
2)从重复记录中找到唯一的一条记录
; }6 @% |# C9 O
minbihanhao
7 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 x
WHERE [表2中重复记录].[id] Is Null;
G' l' C$ S! ^4 [1 }* `8 X+ F
地级市
id
100000951094
5351
100000951116
5350
100000951127
5353
100000951138
5354
100000951149
5352
100000951150
5355
+ Y% e/ ^4 w6 V2 M
3)显示唯一记录的全部信息
; 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& p
WHERE [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* v
4)在原表中除去所有相同的记录
1 Z, D4 H. D0 `& R) U; K& E
dropsame2
8 [# w" m# d& r/ T. t' K T
SELECT 2.*
; C/ {5 Y# V- X0 l2 E4 I
FROM 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 D
5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息
( S9 c. _( ?2 G M% n
表2除去重复记录
4 @/ C# t6 O- E n' d; [( N3 Z
SELECT *
" 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