访问 - 查询以将受骗者移动到一个表中,将非受骗者移动到另一个表中

Posted

技术标签:

【中文标题】访问 - 查询以将受骗者移动到一个表中,将非受骗者移动到另一个表中【英文标题】:Access - Query to move dupes into one table and non-dupes into another table 【发布时间】:2019-02-01 22:50:52 【问题描述】:

目标:

将创建两个表的查询。一个持有重复记录,一个持有非重复记录。

我当前的查询是如何工作的:

当我的查询运行时,重复项被识别并显示在从表 2 引入的列中。

我现在的 SQL 查询:

SELECT
     Table1.Column3 , Table2.Column3
    ,Table1.Column4 , Table2.Column4
    ,Table1.Column5 , Table2.Column5
    ,Table1.Column7 , Table2.Column7
    ,Table1.Column8 , Table2.Column8

From      Table1 
Left Join Table2  
On

(        Table1.Column3 = Table2.Column3
 AND     Table1.Column4 = Table2.Column4
 AND     Table1.Column5 = Table2.Column5
 AND  (  Table1.Column7 = Table2.Column7
      OR Table1.Column8 = Table2.Column8
      )
 )

这可能吗?这样做的目的是让用户能够对文件运行重复检查,然后将具有 non-duplicates 的表导出为新文件,同时他们可以查看 重复表进行数据分析。

我目前正在处理我的查询,所以我会在发现改进后更新这篇文章。

每个请求的示例数据(删除下面数据中的第 5 列):

Table1.Column3  Table1.Column4  Table1.Column7  Table2.Column7  Table1.Column8  Table2.Column8  
AAA             9898            7897897546                        9878795644        
BBB             9898            5489411321                        3321346544        
AAA             9898            8948798794                        3987496321        
AAA             9898            1321316564                        9874631245        
AAA             8878                                              A11111111111  A11111111111    
BBB             8878                                              A22222222222  A22222222222    
BBB             8878            33333333333     33333333333         
BBB             6988            44444444444     44444444444         

您在上面看到的是识别重复项的查询。 Table2 列是已识别的重复项(查询从 Table2 中引入了这两列)。

在这种情况下,我希望删除重复项并将其存储在其自己的表中,并将非重复项存储在另一个表中(连同我删除的 Table2 列)。

此外,对于这个查询,Access 不允许我选择 Make Table 函数。

【问题讨论】:

能否提供样本数据和预期结果以帮助我们理解您的问题? 不应该仅仅为了查看记录而导出。一个查询不能导出到两个表。运行多个操作。 @GMB 包含更多详细信息和屏幕截图。请提出任何问题,以便我进一步澄清。 @June7 不,我没有导出两个表。我正在创建两个表。导出可以手动完成。 基本相同的评论。当查询可以显示记录时,为什么要创建表?应该将代码发布为格式为表格而不是图像的文本。 【参考方案1】:

查询可以导出。

尝试在查询中添加 WHERE 子句。您将需要两个查询。

使用发布的数据集作为源表进行查询。请注意,我在创建表格时在字段名称中留下了句点。

对于重复似乎很简单:WHERE Table1Column8=[Table2Column8] OR Table1Column7=[Table2Column7]

要选择非重复项:

SELECT * FROM Data WHERE Table1Column3 & Table1Column4 
NOT IN (SELECT Table1Column3 & Table1Column4
    FROM Data WHERE Table1Column8=[Table2Column8] OR Table1Column7=[Table2Column7]);

【讨论】:

以上是关于访问 - 查询以将受骗者移动到一个表中,将非受骗者移动到另一个表中的主要内容,如果未能解决你的问题,请参考以下文章

text 曝光一个微信支付钓鱼网站,和相关骗局信息,提醒老人小心上当受骗〜

httphttps 傻傻分不清楚?别再上当受骗了!

为什么我们会那么容易上当受骗

保护自己免受黑客和诈骗者侵害的最佳方法

保护自己免受黑客和诈骗者侵害的最佳方法

保护自己免受黑客和诈骗者侵害的最佳方法