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

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

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

在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?
7 j; v" R3 d0 i4 m7 Y- R) ?6 e4 i9 A本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!
' F$ S, \. o" Q1列出表中的重复记录
7 R2 D  T) \. p6 t6 R6 B(sameoda)
7 U, a2 q8 e7 y" }SELECT [2].[地级市], Count(*) AS 记录数4 Q2 }  n. x6 \. u! s* A+ l! G" q
FROM 2: f2 o3 a+ Q& G  ]: B6 d3 G
GROUP BY [2].[地级市]& F+ V- h. x: O0 d9 E
HAVING count(*)>1
' ?: r' _( y  |* W3 cORDER BY [地级市];
* _: g! V$ P* ^( h! U% I4 ^$ ^# |地级市记录数100000951094210000095111621000009511272100000951138210000095114921000009511502# ^+ o' P) L3 C6 @) Q+ w# u
2以下是除去相同记录的过程
  f5 P* n- ]" H7 X+ z0 W) d8 i1)列出表中的所有重复记录  g* l: y6 ~6 G7 K9 w
(表2中重复记录)
/ W/ U! k7 @7 P- b2 Y# O6 v' y& {SELECT 2.*
( m5 J* z8 R+ U7 h; ~FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];
# z9 `- ^. K2 p, R$ TID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨6 U# l3 A% i9 F" C2 J* H, {+ S
2)从重复记录中找到唯一的一条记录
7 V3 [) G) z# z4 @* rminbihanhao
1 l! N$ C, H4 q7 z2 C( e- F; v( q3 FSELECT 2.** P5 ]( ]) }! z+ g7 l
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
% @2 r9 e# C. G5 CWHERE [表2中重复记录].[id] Is Null;
- A3 G* M; _5 z2 t% g7 T0 d  L地级市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355/ J- s9 A. v4 O* c! B' m
3)显示唯一记录的全部信息- W6 e! i7 a! a) z: x6 t, o% u
allsame1
9 S$ U# |# m8 e' ^SELECT 2.*
% r5 C' J2 x" M# ?; g+ g/ fFROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])
" x( z  a( N* W, \8 `! X+ TWHERE [minbihanhao].[地级市] Is Not Null0 o9 e2 _: u( g
ORDER BY [2].[id];
! ~  y! ]! R& p  g8 }. V+ F6 S6 M0 l7 p; Z9 s7 [7 z- f, j3 Q; V
4)在原表中除去所有相同的记录2 p9 I& f' S) E7 M3 V/ s3 a
dropsame2( r9 H# I8 p' G+ Q
SELECT 2.*+ W8 ]2 _5 n: N7 \  N3 s8 h
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]& c; `; d* b- Z. ?
WHERE [表2中重复记录].[id] Is Null;
! i% T' G+ H5 w/ y5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息
$ ~- j& k$ E9 a: {4 `$ @表2除去重复记录
2 A8 }" S# a8 t+ V% `' k7 \# l9 @SELECT *
' c$ l) C; T* q. M; ^" {/ p1 S" bFROM dropsame2
) y! ~5 p! L6 qUNION select * from7 v- w0 a7 g8 Z  h7 L
allsame1;




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