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

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

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

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-11-10 10:55:59 |只看该作者 |倒序浏览
在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?7 E6 Q# d% {9 B5 |8 E
本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!
) `8 @/ y6 C/ e8 x7 h' f) @  m1列出表中的重复记录
; c$ Y5 C$ I7 z7 [(sameoda)5 Y7 N7 v7 |7 h! M, i3 u
SELECT [2].[地级市], Count(*) AS 记录数
( O( y1 y/ }% M1 T3 IFROM 20 ^3 v% `+ K2 l
GROUP BY [2].[地级市]  J) L, e( F# f1 O6 C2 W9 r, Y# |
HAVING count(*)>1
8 g4 }, \; B2 i+ q4 D: ^! @ORDER BY [地级市];& L$ }! B+ X" f( N5 k/ E, r5 V7 O
地级市记录数1000009510942100000951116210000095112721000009511382100000951149210000095115023 i' A( K% l5 t
2以下是除去相同记录的过程
" m0 J0 m+ o! t+ j1)列出表中的所有重复记录
  h9 p# q$ L! d% I1 c( i  k(表2中重复记录)0 s  n8 F; s: x
SELECT 2.*# }8 e  ~, H& k* \+ W# j9 h2 p
FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];
' A' [: Y. j) J3 aID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨* E" U$ ]" t" W* f  J0 a1 y/ o9 A
2)从重复记录中找到唯一的一条记录% V7 r# J. Y- p1 K
minbihanhao6 K! G$ q1 v4 J9 ?6 W) S$ M
SELECT 2.*; N, s: \" T" }$ s. q# e- w  [
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
- E8 Q$ I0 S' j! [/ A  pWHERE [表2中重复记录].[id] Is Null;
8 G3 G% d9 w2 O3 O7 i/ E0 m地级市id1000009510945351100000951116535010000095112753531000009511385354100000951149535210000095115053552 A( [' R- \* \
3)显示唯一记录的全部信息& ~. n$ i+ @2 C, r) D, P
allsame1' t1 d+ ~1 J$ L
SELECT 2.*
/ U$ I% f7 m6 }1 m) HFROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])
; s" P6 A7 r1 e5 |. ~WHERE [minbihanhao].[地级市] Is Not Null
/ \/ {& q! g2 o  `" j- U) iORDER BY [2].[id];" |# N9 J! x3 ?* e' _& m- V/ {0 h
% T0 N2 K. p# G$ {+ S; M9 v% H
4)在原表中除去所有相同的记录
6 j8 n, y9 q( ]" s' S, |: d3 ]dropsame2
/ w2 L; W+ m! B; T$ l3 BSELECT 2.*0 |# M( ?! V( m/ d3 N
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]0 D! e# Y: i& a% u9 p0 ~6 J. c/ |
WHERE [表2中重复记录].[id] Is Null;% i- Q* g! d7 G% I. q- x
5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息0 B' @) {% P9 n1 |
表2除去重复记录) Q& s0 c  d" S% L4 {6 k
SELECT *+ d* c- D( i  D
FROM dropsame2
! a+ f/ T; e, L% j. mUNION select * from/ ~% D' Z& m7 b! v, p" X
allsame1;
您需要登录后才可以回帖 登录 | 注册


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

GMT+8, 2025-10-21 19:05 , Processed in 0.023002 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部