怎样在Aceess表中删除/修改重复的项

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:26:36
我要把两张表追加到一张表中,因为其中学号是主码,我就先把主码取消掉了,然后再追加到一张表中,但是这样的话有可能就有重复的学号了,也就是说一个学生可能两次参加了这个考试,那么他有两个成绩,而且我这里的成绩表是包括每一个大题的得分的,这样的话,我要把这两个记录删除掉一个总分低的,保留总分高的那个记录,不知道该怎么办?

执行一个删除查询就可以了

因为不清楚你那个表的字段结构,所以我自己建了个数据库和一个表(表名:分数表),表的结构如下:
字段名 字段类型
学号 文本
姓名 文本
分数 数字

新建一个查询,将查询视图改成SQL视图,粘贴以下SQL语句,将表名、字段名改成你数据库中相应的名字,然后执行该查询即可。执行查询前请先备份,也可以改成数据表视图检查是否你需要删除的数据,以免误删数据。

DELETE 分数表.*
FROM 分数表
WHERE (((分数表.分数)=DMin("[分数]","[分数表]","[分数表]![学号]='" & [分数表]![学号] & "'")) AND ((DCount("[学号]","[分数表]","[分数表]![学号]='" & [分数表]![学号] & "'"))>1));

如果你的学号是数字型,则:
"[分数表]![学号]='" & [分数表]![学号] & "'"应改为:
"[分数表]![学号]=" & [分数表]![学号]

此查询只能删除最低分数,如果要有多个分数,可以多次执行,至数据表视图中记录数为零止。