0

我正在尝试在 MS Access 中创建一个多项目表单,其中每条记录都有一个聚合值字段。也就是说,我有两个具有一对多关系的表。对于表 a 中的每条记录(一对多中的“一”),我想对表 b 中的一个字段(一对多中的“多”)求和。

我尝试使用带有 INNER JOIN 和 SUM sql 语句的记录源,但这不起作用,因为 SUM 函数只返回一个聚合值(只有一行包含所有记录的总和)。我希望表 a 中的每条唯一记录都有一行,并且有一个字段来汇总表 b 中的所有相关记录。

哦,天哪。我希望这对阅读它的人有意义。我的解释似乎令人困惑,但我不知道如何澄清它。

4

1 回答 1

1

听起来很简单:

select 
    a.Field1, sum(b.Field2) as sumOfField2
from
    [yourTableA] as a
    inner join [yourTableB] as b on a.id = b.idOfA
group by 
    a.Field1

这应该为 的每个值提供一个聚合值Field1。替换字段和表名称以满足您的需要。

尖端:

  1. 如果您需要按更多值分组,请将它们添加到您的字段列表(select指令的一部分)分组字段(group by指令的一部分)
  2. 如果您还需要显示表 b 中没有任何相关记录的表 a 的值,请替换inner joinleft join(总和为零)

希望这可以帮助

于 2013-05-14T21:18:19.650 回答