【发布时间】:2016-02-11 10:13:03
【问题描述】:
我正在尝试创建包含 Table1 中所有记录的表或查询,但删除或排除了 Table2 中也存在的所有记录。
我已尝试创建一个删除查询,该查询创建一个包含排除记录的新表,以及一个显示除排除记录之外的所有记录的选择查询。
我一直在根据 16 个字段比较这两个表。很有可能 Table1 中的两条记录除了一个字段之外是相同的,而且可能并不总是相同的字段。这就是为什么我不能每次都基于一个字段比较两个表。
这一切都很好,只要 16 个字段中的每一个都不为空。某些字段可能为空,但是当我运行查询时,只有我比较的字段都不为空白的记录被删除/排除,任何其他字段仍然保留。我尝试在不比较可能包含空白的字段的情况下运行查询,但由于剩余字段中的信息重复,它排除了更多记录。
如何排除匹配记录,并准确比较空字段?我不介意它是删除还是选择查询,也不介意使用 SQL。同样重要的是 Table1 和 Table2 中的字段没有以任何方式更改。我只能删除Table1中必要的数据,不能更改。
我正在使用 Microsoft Access 2010。
编辑:这是一个示例图像(这些不是我正在使用的确切表格,而是我为这个问题快速创建的示例): IMAGE: Duplicates not deleted accurately
第一个表是Table1,它显示了所有的记录。红色标出的记录具有重复的业务事件 ID,因此必须排除其中一个。对于第一对重复(ID 4),我将排除第二条记录,因为净价和最终价格较低。对于第二对(ID 6),我将删除第二条记录,因为客户撤回了取消并续订。对于第三对(ID 10),我将排除第一条记录,因为 Nett 和 Final Price 较低,Scheme 为空白。
第二个表包含我希望排除的三个记录的精确副本。这些是并且将永远是手动输入的。并不是说 ID 6 和 ID 10 有空白字段。
第三张图显示了我编写的 SQL 代码,如果所有字段都与 Table2 中的所有相应字段匹配,则会删除 Table1 中的一条记录。
最后的图像显示了查询的数据表视图,以及在我运行删除查询时将被删除的记录。只有 ID 为 4 的记录将被删除,因为它是唯一没有空白字段的记录。
【问题讨论】:
-
您能否准确地展示您在此处尝试执行的操作的小样本?
-
我已经附上了一张图片,其中包含了一个示例。这些是我在过去一个小时内很快整理好的表格,因此与我正在处理的表格不同。但是过程和问题是完全一样的。
标签: sql database ms-access ms-access-2010