Sql 如何使用update和sum()函数更新ms access数据库表?
我的access数据库中有两个表Sql 如何使用update和sum()函数更新ms access数据库表?,sql,Sql,我的access数据库中有两个表 表1(ID、产品名称、数量、余数) 表2(ID、产品名称、销售额) 使用“产品名称”将这些表关联在一起,我如何使用“数量表第一个表-第二个表的总和(销售)”值更新表1中的“提醒”通过获取总和()执行更新联接 UPDATE a SET a.remainder = x.SaleTotal FROM table1 a INNER JOIN (SELECT productname, SUM(sales) AS SaleTotal
- 表1(ID、产品名称、数量、余数)
- 表2(ID、产品名称、销售额)
使用“产品名称”将这些表关联在一起,我如何使用“数量表第一个表-第二个表的总和(销售)”值更新表1中的“提醒”通过获取
总和()执行更新联接
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;
因为MS Access中的更新查询需要状态,所以不能在聚合查询上使用直接内部联接。考虑使用MS访问函数:
UPDATE table1
SET table1.remainder = table1.quantity -
DSum("Sales", "table2", "ProductName='" & table1.ProductName & "'")
非常感谢您的回答..我没有使用ID,因为数据库包含许多表--不仅仅是两个表,我需要使用Productname来创建关系,但为了简化我的问题,我只使用了两个表..请接受我的问候