使用update和sum()函数

时间:2015-12-25 17:41:59

标签: sql

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

  • table1(ID,productname,qunatity,remainder)
  • 表2(ID,产品名称,销售)

这些表格使用"产品名称" ,我该如何更新"提醒"来自table1的值为"数量形式第一个表 - 来自第二个表的总和(销售额)"

3 个答案:

答案 0 :(得分:1)

由于MS Access中的更新查询需要updateable状态,因此您无法在聚合查询上使用直接内部联接。考虑使用MS Access DSum()功能:

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

答案 1 :(得分:0)

首先获取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;

答案 2 :(得分:0)

如果您说它是通过productname字段链接的,请在表1中告诉我这是一个外键。由于表2中已有ID,因此没有理由不将该ID用作表1中的外键。

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

gem 'sprockets-rails', '~> 2.3.3'