【问题标题】:Deleting duplicate records using SQL code, searching 3 columns, but showing all columns使用 SQL 代码删除重复记录,搜索 3 列,但显示所有列
【发布时间】:2013-02-18 10:14:57
【问题描述】:

我有一个数据库,我正在尝试删除重复记录(无法阻止这些重复记录,因为它来自一个拥有超过 70,000 条记录的 Excel 电子表格)

我使用 SQL 创建了几个查询,以使总数达到大约 1400 条记录,但是仍然存在重复的地方,例如客户输入邮政编码的地方,然后再次输入,中间没有空格。

我希望的是做一个 SQL 查询来删除搜索名字、姓氏和邮政编码的所有重复记录,但是我需要它来显示所有列的结果(标题、名字、姓氏、地址, Address2, Town/City, County, Postcode)

我希望这对某人有意义,因为我一直在到处寻找答案,但没有什么真正有意义,因为这是我第一次开始使用 SQL 编码,所以在这方面我是一个完全的新手。

我目前正在使用 Microsoft Access 2010

【问题讨论】:

  • 请输入您的数据库架构,您会使用sql server删除记录吗?
  • 也不明白删除重复记录并显示所有列的结果是什么意思?
  • 我希望它如何工作是通过 SQL 搜索 3 个字段的重复项,即名字、姓氏和邮政编码。
  • 但是在结果中我希望能够看到其余的列。我已经尝试过自己,但它不起作用(见下文)
  • SELECT [First Name], Surname, Postcode, Count (ID) From SurnameSearch GROUP BY Title, [First Name], Surname, Address, Address2, Town/City, County, Postcode HAVING Count (Surname , 邮政编码) >1

标签: ms-access ms-access-2010


【解决方案1】:

在 MS Access 中,有一些向导,例如查找重复项向导。

以下步骤的 SQL 是:

SELECT Table1.[AText], Table1.[ADate], Table1.[ANumber]
FROM Table1
WHERE (((Table1.[AText]) In (SELECT [AText] 
   FROM [Table1] As Tmp GROUP BY [AText] HAVING Count(*)>1 )))
ORDER BY Table1.[AText];

如果您遇到困难,查询向导非常有帮助。

选择查询类型

选择表格

选择您要查找重复项的一个或多个字段

选择任何其他字段

设计视图中的查询

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2012-10-08
    • 1970-01-01
    相关资源
    最近更新 更多