Access SQL 如何更新重复项?
Posted
技术标签:
【中文标题】Access SQL 如何更新重复项?【英文标题】:Access SQL How do I update on duplicates? 【发布时间】:2017-01-06 18:24:53 【问题描述】:现在我有一些 Access SQL 可以在我的表中找到重复项。我正在尝试编写一个单独的 UPDATE 命令来更新与这些重复项关联的字段。
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 出了什么问题?
【问题讨论】:
【参考方案1】:正确的语法是:
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 不允许更新聚合视图。您必须创建一个临时表并使用它进行更新,然后再删除它。以上是关于Access SQL 如何更新重复项?的主要内容,如果未能解决你的问题,请参考以下文章