使用自联接关系查找重复值

此过程使用自联接关系和引用该关系的计算字段,以根据关系中定义的排序顺序来标识除第一个实例外的所有重复记录。设置此系统后,将在创建重复记录时对其进行标识。

要查找除第一个实例外的重复记录:

  1. 如果计划删除找到的重复记录,请创建该文件的备份副本。

    请参阅保存和拷贝文件

  2. 选择要检查重复值的字段。

    如果要检查一起提取的多个字段是否有重复值,可以使用结合多个字段中数据的计算来创建一个计算字段(返回文本结果),并检查计算字段中是否有重复。例如,姓氏+名字+电话号码。请不要使用重复字段。

  3. 在关系图中,将所选字段从表摹本拖回自身以定义自联接关系。

    您选择的字段成为自联接关系的两个表中的匹配字段。请参阅创建和更改关系

  4. 在 “添加关系”对话框中,将新表命名为 Same

    FileMaker Pro 生成表的第二个摹本,据此建立自联接。

  5. 定义两个字段:

  6. 字段

    定义

    计数器

    自动输入序列号的文本字段 (选择序列号并接受下一个增量的默认值)。

    此字段的目的是为每条记录分配唯一的值。如果数据库已经有该字段 - 例如,默认的 “主密钥”字段 - 则您在以下 “检查重复值”字段的计算中可以使用该字段,而不使用 “计数器”字段,并且可以跳过步骤 7

    检查重复值

    包含文本结果的计算字段,公式为:

    复制
    If ( Counter = Same::Counter ; "Unique" ; "Duplicate" )

    此计算使用自联接关系比较当前表摹本中的 “计数器”值与名为 Same 的相关表摹本中的值。如果您选择的字段 (关系的匹配字段)与相关表摹本中的字段相同,且 “计数器”字段值也相同,则当前记录与相关记录是同一记录;因此当前记录标记为唯一。如果 “计数器”字段值不同,则当前记录与相关记录是不同的记录,但其所选字段具有相同的值;因此当前记录标记为重复

  7. 单击状态工具栏中的“显示全部”。

  8. 单击新的“计数器”字段,选择记录菜单 > 替换字段内容替换为序列号。再次接受默认值,选择更新“输入选项”中的序列号,然后单击替换

    这将向数据库中的所有现有记录分配序列号。序列号将自动输入到新记录中。

  9. 在“检查重复值”字段中执行查找“重复项”的操作。

    任何重复项系列中的第一条记录现在的值在 “检查重复值”字段中唯一,而同一系列中的所有重复记录标记为

重要事项  在匹配字段中没有值的记录将标记为重复项。如上设置后,此系统在重复记录创建时会自动识别它们。