Access SQL如何更新重复项?

Access SQL如何更新重复项?,sql,ms-access,Sql,Ms Access,现在我有一些Access SQL,可以在我的表中找到重复项。我正在尝试编写一个单独的更新命令,该命令将更新与这些重复项关联的字段 UPDATE T SET BAD_CODES = BAD_CODES & 'D' FROM work AS T JOIN (SELECT DIVISION, FIPS_COUNTY_CODE, LAST, SUFFIX, FIRST, TITLE, BIRTHDATE, COUNT(*) FROM work

现在我有一些Access SQL,可以在我的表中找到重复项。我正在尝试编写一个单独的更新命令,该命令将更新与这些重复项关联的字段

UPDATE T 
    SET BAD_CODES = BAD_CODES  & 'D'
    FROM work AS T 
    JOIN (SELECT DIVISION, FIPS_COUNTY_CODE, LAST, SUFFIX, FIRST, TITLE, BIRTHDATE, COUNT(*)
          FROM work                      
          GROUP BY DIVISION, FIPS_COUNTY_CODE, LAST, SUFFIX, FIRST, TITLE, BIRTHDATE
          HAVING COUNT(*) > 1
          ) AS S
      ON  T.DIVISION = S.DIVISION
      AND T.FIPS_COUNTY_CODE = S.FIPS_COUNTY_CODE
      AND T.LAST = S.LAST
      AND T.SUFFIX = S.SUFFIX
      AND T.FIRST = S.FIRST
      AND T.TITLE = S.TITLE
      AND T.BIRTHDATE = S.BIRTHDATE
我认为这接近我所需要的,但我得到了一个语法错误(缺少运算符),我似乎无法弄清楚。我的SQL有什么问题吗?

正确的语法是:

UPDATE work T INNER JOIN
      (/* Subquery */) AS S
      ON  T.DIVISION = S.DIVISION
      AND T.FIPS_COUNTY_CODE = S.FIPS_COUNTY_CODE
      AND T.LAST = S.LAST
      AND T.SUFFIX = S.SUFFIX
      AND T.FIRST = S.FIRST
      AND T.TITLE = S.TITLE
      AND T.BIRTHDATE = S.BIRTHDATE
SET T.BAD_CODES = T.BAD_CODES  & 'D'

Access不允许更新聚合视图。您必须创建一个临时表并使用它进行更新,然后将其删除。

正确的语法是:

UPDATE work T INNER JOIN
      (/* Subquery */) AS S
      ON  T.DIVISION = S.DIVISION
      AND T.FIPS_COUNTY_CODE = S.FIPS_COUNTY_CODE
      AND T.LAST = S.LAST
      AND T.SUFFIX = S.SUFFIX
      AND T.FIRST = S.FIRST
      AND T.TITLE = S.TITLE
      AND T.BIRTHDATE = S.BIRTHDATE
SET T.BAD_CODES = T.BAD_CODES  & 'D'

Access不允许更新聚合视图。您必须创建一个临时表,并使用它进行更新,然后再删除它。

现在它只是说语法错误(在它说语法错误之前,它会给我错误所在的块,这不是很有帮助,因为它占了块的95%)。我知道这没有帮助,但它实际上没有说。它只是弹出一个框,上面写着“语法错误”。@rohan你现在可以试试吗?现在它说“操作必须使用可更新的查询”有什么想法吗?Access不允许更新聚合视图。你必须创建一个临时表并使用它进行更新,然后再删除它。现在它只是说语法错误(在它说语法错误之前,它会给我错误所在的块,这不是很有帮助,因为它占了块的95%)。我知道这没有帮助,但它实际上没有说。它只是弹出一个框,上面写着“语法错误”。@rohan你现在可以试试吗?现在它说“操作必须使用可更新的查询”有什么想法吗?Access不允许更新聚合视图。您必须创建一个临时表并使用它进行更新,然后再删除它。