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

 找回密码
 注册
搜索
查看: 1275|回复: 0
打印 上一主题 下一主题

access处理重复记录的方法 [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-11-10 10:55:59 |只看该作者 |倒序浏览
在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?6 U" Z) @; c: R
本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!+ `$ W& F2 X6 L7 z
1列出表中的重复记录! a# d$ {# e. b* K: A
(sameoda): j& c: b  j- i3 f+ q" y5 ?2 q" D
SELECT [2].[地级市], Count(*) AS 记录数
' w! I' c2 o' P: `5 e% KFROM 2
+ ]8 R0 P2 i+ H* F4 YGROUP BY [2].[地级市]
- x2 L/ o8 i0 g' c; m8 U) N; zHAVING count(*)>1- O9 }& o! I5 E' u6 M2 j8 K( M
ORDER BY [地级市];
5 T. _$ @0 d. N6 t8 S地级市记录数100000951094210000095111621000009511272100000951138210000095114921000009511502
9 t- l5 [" A0 S$ E0 S2以下是除去相同记录的过程% v4 c' e' a* y- V: }' w
1)列出表中的所有重复记录
7 ~  \1 {" R6 z5 ?$ Z( `(表2中重复记录)
" X. R, A( U3 C. a  @% lSELECT 2.*& o' f8 B* W( O9 Z, u; w
FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];
5 E0 N* _, q- L* w5 L( h- {$ AID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨/ C7 t: |1 q" x! N$ J2 [+ E" R
2)从重复记录中找到唯一的一条记录
! y9 g- g% C$ m) i+ @. k2 ]minbihanhao
  i) g9 A. G2 B$ y& [' i( PSELECT 2.*
3 g6 X& z% m: A, A3 m+ A" t0 @2 aFROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
' r5 f# Y' _% i- g! QWHERE [表2中重复记录].[id] Is Null;2 s, Y9 c' z) c3 h
地级市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355
% |1 B9 d7 Z3 X/ k% J1 C3)显示唯一记录的全部信息  E& t: U9 X, ~& u+ X# n: r- ?
allsame1+ j9 f. o! ?$ C8 u6 k! s
SELECT 2.*
  D7 J" Y3 s" i2 lFROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])7 y: ^7 L2 t* d- c9 `5 n
WHERE [minbihanhao].[地级市] Is Not Null/ G) a" z2 q+ y/ e8 K# a8 f: J
ORDER BY [2].[id];7 b3 M! ~3 `2 ]% g; W! l+ ?

. e" [$ F1 r. D& i! o, q' @4)在原表中除去所有相同的记录
3 ]8 Z( E$ [$ \6 B6 i. Ndropsame2% s' c$ i1 V' O" x( n
SELECT 2.*' l2 v! v+ n! z+ K
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]% C1 c1 d4 w* W' i
WHERE [表2中重复记录].[id] Is Null;
, B2 n' C! x  r% H/ {. n5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息: l5 T9 E! v- i5 _
表2除去重复记录
( {0 _4 q# W: l* m6 USELECT *8 i$ w5 n8 A( k7 I0 L/ @& Y
FROM dropsame2 0 y  Y/ }# H0 A
UNION select * from% Q) @" V# l6 z, _# w/ a
allsame1;
您需要登录后才可以回帖 登录 | 注册


Archiver|航空论坛 ( 渝ICP备10008336号 )

GMT+8, 2025-6-17 01:53 , Processed in 0.024001 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部