【问题标题】:append query, skipping duplicate entries (duplicates are not primary key)追加查询,跳过重复条目(重复项不是主键)
【发布时间】:2015-07-07 18:53:21
【问题描述】:

我在这里有一个追加查询。我希望它从 Excel 电子表格更新 Access 中的现有项目表。我希望它忽略重复项。每次我运行它时,它都会弹出一个关于最终“Projects.[Measure]”的错误。我哪里做错了?

INSERT INTO Projects ([Measure],[Customer Number], Store, [Customer Name], [CustomerAddress], [Measure Received])

SELECT [Measure], [Customer Number], [Store], [Customer Name], [CustomerAddress], [MeasureReceived]

FROM NewProjects

WHERE NOT EXISTS
(
SELECT * FROM NewProjects
WHERE NewProjects.[Measure] = Projects.[Measure]
)
;

【问题讨论】:

    标签: sql excel ms-access ms-access-2010


    【解决方案1】:

    您的主查询包括这个子查询:

    SELECT * FROM NewProjects
    WHERE NewProjects.[Measure] = Projects.[Measure]
    

    WHERE 子句引用 Projects.[Measure]。但是 Projects 不包含在 FROM 子句中,因此 Access 猜测 Projects.[Measure] 必须是参数的名称。

    考虑另一种方法。首先创建一个返回“非重复”行的SELECT 查询。 LEFT JOIN NewProjects 到 Projects 并询问右侧 Measure 值为 Null 的那些行 --- 这些是 NewProjects 项目中不存在(不匹配)的行:

    SELECT
        n.Measure,
        n.[Customer Number],
        n.Store,
        n.[Customer Name],
        n.CustomerAddress,
        n.MeasureReceived
    FROM
        NewProjects AS n
        LEFT JOIN Projects AS p
        n.Measure = p.Measure
    WHERE p.Measure Is Null;
    

    调查 Access“不匹配的查询向导”。它可以指导您完成创建类似查询的过程。但是,无论您使用向导还是复制我的示例查询并将其粘贴到 SQL 视图中,请确认它返回正确的(非重复)行。然后您需要做的就是将INSERT 部分添加到查询的开头:

    INSERT INTO Projects ([Measure],[Customer Number], Store, [Customer Name], [CustomerAddress], [Measure Received])
    

    【讨论】:

      【解决方案2】:

      如果不查看一些示例数据,这很难确定,但也许这会为您提供您正在寻找的插入集。

      INSERT INTO Projects ([Measure],[Customer Number], [Store], [Customer Name], [CustomerAddress], [Measure Received])
          SELECT np.[Sales Document], np.[Sold-to party], np.[Site], np.[Name 1], pn.[Sold-to address], np.[Created On]
            FROM NewProjects np
            WHERE np.[Sales Document] NOT IN
              (SELECT p.[Measure] FROM Projects p);
      

      【讨论】:

        猜你喜欢
        • 2020-02-02
        • 2014-10-20
        • 1970-01-01
        • 2015-07-13
        • 2012-08-18
        • 1970-01-01
        • 2019-05-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多