首页 文章

在ACCESS中使用来自其他表的AVERAGE值进行UPDATE查询

提问于
浏览
0

我有这两个简单的访问表 .

Table 1 由Item descriptionweight 列组成 . 项目 description 不是唯一的,因为 weight 略有不同 .

Table 2 旨在保存 table 1 中项目的平均 weight . 在此表中,项目 description 是唯一的 .

我无法在ACCESS工作中进行UPDATE查询 . 它说查询不包括 weight 作为聚合函数的一部分 .

当我尝试添加GROUP BY子句时,由于语法错误,它仍然无法工作 .

任何人都知道可能是什么问题?

这是查询:

UPDATE TABLE2 
INNER JOIN TABLE1 ON TABLE2.DESCRIPTION = TABLE1.DESCRIPTION
SET TABLE2.WEIGHT = AVG(TABLE1.WEIGHT)

2 回答

  • 0
    UPDATE t2
    SET t2.WEIGHT = t1.AVG_WEIGHT 
    FROM TABLE2 t2
    INNER JOIN (select  TABLE1.DESCRIPTION,AVG(TABLE1.WEIGHT) as AVG_WEIGHT
       from TABLE1 
      group by TABLE1.DESCRIPTION) as t1
    on TABLE2.DESCRIPTION = TABLE1.DESCRIPTION
    
  • 0

    这里有更简单的方法 -

    您需要创建一个临时或中间表来计算平均值 .

    您必须从查询中创建一个新表t3

    select TABLE1.DESCRIPTION,AVG(TABLE1.WEIGHT) as AVG_WEIGHT    
    from TABLE1 
    group by TABLE1.DESCRIPTION
    

    然后你可以在更新查询中使用它

    UPDATE TABLE2 
        INNER JOIN TABLE3 ON TABLE3.DESCRIPTION = TABLE2.DESCRIPTION
        SET TABLE3.WEIGHT = TABLE2.WEIGHT
    

相关问题