繁体   English   中英

如何使用 update 和 sum() 函数更新 ms access 数据库表?

[英]How to update ms access database table using update and sum() function?

我的访问数据库中有两个表

  • table1(ID,productname,quantity,remainder)
  • table2(ID,productname,sales)

这些表使用“产品名称”关联在一起,如何使用“第一个表中的数量形式 - 第二个表中的总和(销售额)”的值更新表 1 中的“提醒”

因为 MS Access 中的更新查询需要可更新状态,所以您不能对聚合查询使用直接内部联接。 考虑使用 MS Access DSum()函数:

UPDATE table1
SET table1.remainder = table1.quantity - 
    DSum("Sales", "table2", "ProductName='" & table1.ProductName & "'")

通过首先获取SUM()来执行更新连接

UPDATE a 
SET    a.remainder = x.SaleTotal
FROM   table1 a 
       INNER JOIN (SELECT productname, SUM(sales) AS SaleTotal 
                   FROM TABLE2 GROUP BY productname) x 
       ON a.productname = x.productname;

当您说它由 productname 字段链接时,请告诉我表 1 中的外键。 由于表 2 中已有 ID,因此没有理由不将该 ID 用作表 1 中的外键。

如果您要这样做,更新将像这样简单:

update table1 
set table1.quantity = table1.quantity - SUM( table2.sales ) 
from table1
inner join table2 on table1.productID = table2.productID
where table1.productID = 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM