Access SQL如何更新重复项?
现在我有一些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
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不允许更新聚合视图。您必须创建一个临时表并使用它进行更新,然后再删除它。