将重复记录合并/合并为一个

时间:2014-04-29 02:51:04

标签: ms-access duplicates

我有一个包含超过100,000条记录的访问表。我的问题是许多记录都有重复的信息。我想将记录合并/合并到记录中。

我有一个字段(CommonField),可用于识别重复项(有时超过两个记录)。每个领域都需要单独考虑。例如:

如果日期字段不相等,我宁愿保留最近的日期。

如果计数字段不相等,我宁愿保留较大的值。

如果公司名称不相同,我宁愿保留两个名称,除非一个名字在另一个名称之内。

CLICK HERE获取数据样本:

+------------------+-------------+-------+-------+------------------+-----------+------------+--------+-----------------------------+
| Existing Records |             |       |       |                  |           |            |        |                             |
+------------------+-------------+-------+-------+------------------+-----------+------------+--------+-----------------------------+
| ID               | CommonField | First | Last  | Email            | Date      | Currency   | Count  | Company                     |
| 1                | AA123       | John  |       |                  |           | $465,000   |        | ABC Company Ltd             |
| 2                | AA123       | John  |       | John@gmail.com   | 1-Mar-78  | $465,000   | 87,000 | ABC Company                 |
| 3                | AA123       |       | Doe   |                  | 14-Mar-78 | $465,000   | 88,000 |                             |
| 4                | BB456       | Dave  | Smith |                  | 1-Apr-92  | $1,200,000 | 5,000  | Carter Company              |
| 5                | BB456       |       | Smith | Dave@aol.com     | 1-Apr-92  | $1,200,000 | 5,000  | Simpson Ltd                 |
| 6                | CC568       |       |       | Jane@hotmail.com | 1-Sep-05  | $60,000    |        | Woods Holdings              |
| 7                | CC568       |       | Woods | Jane@hotmail.com |           |            | 40,000 | Woods                       |
| 8                | CC568       | Jane  | Woods |                  | 1-Sep-05  |            |        |                             |
| 9                | DD211       | Bob   | Burns | Bob@gmail.com    | 5-Aug-01  | $678,100   | 21,400 |                             |
|                  |             |       |       |                  |           |            |        |                             |
| Desired Result   |             |       |       |                  |           |            |        |                             |
| ID               | CommonField | First | Last  | Email            | Date      | Currency   | Count  | Company                     |
| 10               | AA123       | John  | Doe   | John@gmail.com   | 14-Mar-78 | $465,000   | 88,000 | ABC Company Ltd             |
| 11               | BB456       | Dave  | Smith | Dave@aol.com     | 1-Apr-92  | $1,200,000 | 5,000  | Carter Company, Simpson Ltd |
| 12               | CC568       | Jane  | Woods | Jane@hotmail.com | 1-Sep-05  | $60,000    | 40,000 | Woods Holdings              |
| 13               | DD211       | Bob   | Burns | Bob@gmail.com    | 5-Aug-01  | $678,100   | 21,400 |                             |
+------------------+-------------+-------+-------+------------------+-----------+------------+--------+-----------------------------+

我有兴趣听取您关于解决此项目的最佳方式的建议。

1 个答案:

答案 0 :(得分:0)

难看。

我认为对于名称字段,您可能需要另一个表来组合名称。我首先通过查询公共ID和公司名称从组中创建新表。向表中添加标准化名称的额外字段,然后使用查找重复项查询查看具有多个名称的所有常用ID,并手动分配标准化名称。

然后,您可以通过查询将原始数据表和公司名称表都放入一个组中,并将标准化名称拉入最终结果。对于数据和计数字段,您可以使用max(date)和max(count)。这应该适用于第一个,最后一个和电子邮件文本字段 - 但您需要非常仔细地手动检查结果。