You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access 2010中如何按两两字段组合查找单表重复记录

更高效的Access 2010重复记录查询方案

嘿,我来给你一个比用重复查询向导分步操作高效得多的方案——直接用SQL语句一步到位,完全匹配你的重复判定规则!

需求回顾

你需要从单表中筛选出满足以下任一条件的重复记录:

  • 姓氏 + 出生日期的组合重复
  • 名字 + 出生日期的组合重复
    同时排除仅出生日期相同,但姓氏和名字都不重复的记录(也就是你说的最后一条无需查出的情况)

一步到位的SQL查询

把下面的SQL语句复制到Access的查询设计视图(切换到SQL视图),替换YourTableName为你的实际表名即可:

SELECT t.*
FROM YourTableName AS t
INNER JOIN (
    -- 筛选重复的「姓氏+出生日期」组合
    SELECT 姓氏, 出生日期
    FROM YourTableName
    GROUP BY 姓氏, 出生日期
    HAVING COUNT(*) > 1
    UNION
    -- 筛选重复的「名字+出生日期」组合
    SELECT 名字, 出生日期
    FROM YourTableName
    GROUP BY 名字, 出生日期
    HAVING COUNT(*) > 1
) AS dup ON 
    (t.姓氏 = dup.姓氏 AND t.出生日期 = dup.出生日期) 
    OR (t.名字 = dup.名字 AND t.出生日期 = dup.出生日期)
ORDER BY t.出生日期, t.姓氏, t.名字;

代码解释

  1. 子查询部分:
    • 第一个SELECT块找出所有「姓氏+出生日期」出现次数大于1的组合
    • 第二个SELECT块找出所有「名字+出生日期」出现次数大于1的组合
    • 用UNION合并两个结果,自动去重避免重复组合被多次统计
  2. 主查询部分:
    • 通过INNER JOIN把原表和子查询的重复组合关联起来,筛选出所有符合条件的记录
    • 最后用ORDER BY把同组重复记录排在一起,方便你查看对比

注意事项

  • 如果你的字段名包含空格或特殊字符,记得给字段名加上方括号,比如[姓氏]、[出生日期]
  • 这个查询会一次性返回所有符合规则的重复记录,比分步创建多个查询再合并的效率高很多,也更容易维护

内容的提问来源于stack exchange,提问作者Zie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:46:17