gpt4 book ai didi

sql - Access : Update query with count in subquery - error or all results

转载 作者:行者123 更新时间:2023-12-04 20:57:03 27 4
gpt4 key购买 nike

我知道您不应该将计算值存储在数据库中,但在这种情况下,给出了结构,我必须处理它。

我有两个表:
Table1与字段(即 customer, product, price, count )
Table2与字段(即 customer, product, description )

我现在需要用表 2 中匹配条目的数量更新表 1 中的字段“计数”。这两个表需要通过“客户”和“产品”连接。

我的想法是这样的:

UPDATE Table1 SET Table1.count = 
(SELECT COUNT(Table2.customer)
FROM Table2
WHERE Table2.customer = Table1.customer AND Table2.product = Table1.product)
WHERE Table1.count IS NULL

但这给出了一个错误:

Operation must be an updateable query.



我在这边和网上搜索,有人建议使用 DCount 函数,所以我重写了我的代码来做到这一点:
UPDATE Table1 
SET Tabl1.count = DCount( "*", "Table2", "Table2.product = "& Table1.product AND "Table2.customer = "& Table1.customer)
WHERE Table1.count IS NULL

不幸的是,这总是会返回 Table2 中存在的所有条目。 .所以如果我在 Table2 中有 100 个条目DCount 值 = 100 而不是特定条目的匹配条目数量 Table1 (其中客户和产品相同)。

有人可以指出我在该语句中缺少的内容,以便我可以使用来自 Table2 的匹配条目数更新列“计数” .

最佳答案

创建一个带有计数的临时表:

SELECT customer, product, COUNT(customer) as count
INTO CustomerCounts
FROM Table2
GROUP BY customer, product

用 Table1 更新新表的连接:
UPDATE 
Table1 t JOIN
CustomerCounts cc ON cc.customer = t.customer
AND cc.product = t.product
SET t.count = cc.count

关于sql - Access : Update query with count in subquery - error or all results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31696035/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com