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

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

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

在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?
) C; Q) Z, ~4 `, t本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!& G; c* ]% k% H" W5 `; o. e
1列出表中的重复记录1 f3 R3 w! W3 y  c/ v2 J5 u5 P
(sameoda)
2 M7 d. U: `& Y0 ]( X( bSELECT [2].[地级市], Count(*) AS 记录数
6 s! t4 I$ _9 [" i6 j6 x% iFROM 2# k5 {& v2 C2 `" t( f. L& y6 H( U
GROUP BY [2].[地级市]0 J* L  ~2 n: R6 a3 f0 {, c( W: h
HAVING count(*)>1
2 q$ ~0 C9 A& \8 sORDER BY [地级市];6 j  L7 V0 J. G6 D* v; z% s
地级市记录数1000009510942100000951116210000095112721000009511382100000951149210000095115020 |4 R" A" P4 R& Z( t& {. Q
2以下是除去相同记录的过程
; G- T8 i0 W3 p5 O  ~1)列出表中的所有重复记录0 b% W$ F' `  L( t+ w
(表2中重复记录), a, ~' n6 S. `
SELECT 2.*7 c: w9 U7 V; Z4 C% u  }
FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];9 B9 {1 j1 P6 u, x9 B0 K% g1 _
ID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨
# g- G( _! n& \4 O. x1 U" J8 P- V2)从重复记录中找到唯一的一条记录" h, V1 v! b' P* k: l' |
minbihanhao
$ R- c* `4 ?9 J2 HSELECT 2.*
! O% I! W) [( h2 t2 k! nFROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
. j$ @' r5 ~$ d4 i) ^9 hWHERE [表2中重复记录].[id] Is Null;
" }1 ~1 w  ~$ J( O地级市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355
) [1 F: X; O2 y  l3)显示唯一记录的全部信息8 z/ L6 M) w+ \) I( J7 K0 R3 \
allsame1
, @( s) g) _1 L9 s; b1 g. d* N! G' rSELECT 2.*3 D% ?) o0 A1 v  Z
FROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])  `0 U" q$ x: C1 S* a6 P
WHERE [minbihanhao].[地级市] Is Not Null
5 k- C8 x' |: w6 g- hORDER BY [2].[id];
1 n6 Z# x4 M& Y9 ]+ V7 H9 \- l) [8 p" h* B, I
4)在原表中除去所有相同的记录
' v  [* s9 h- s  Qdropsame2
' E* n0 t% w# l! R  ~SELECT 2.*
/ k5 M+ H8 A+ l3 y: kFROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]- \; c# g% U) ?' F1 w
WHERE [表2中重复记录].[id] Is Null;
. n4 s. k- a& i3 h6 k5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息- j& m& Z! x4 t* D( D! U" q1 L' N8 ?
表2除去重复记录
% \9 H, Z  a0 W9 T# J. }* H4 d: KSELECT *+ `+ V9 R; E  A& V( J5 A. R& V
FROM dropsame2 3 E9 [) j) @+ [% P1 b3 i. I
UNION select * from
' ?/ g1 h" |/ y& t3 n" [ allsame1;




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