【问题标题】:Records with a field that is a sum字段为总和的记录
【发布时间】:2013-05-14 21:12:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql forms ms-access


    【解决方案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 join 替换为 left join(总和为零)

    希望对你有帮助

    【讨论】:

    • 当您知道自己在做什么时很简单。非常感谢,我很感激。这绝对有帮助......而且现在我知道该怎么做很简单。
    • @Jslick 供将来参考的提示:手头有一个好的 SQL 参考。您需要了解如何关联表以充分利用它们。我很乐意提供帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2017-01-28
    • 2020-05-26
    相关资源
    最近更新 更多