访问-根据另一个表中的任何匹配字段来计算字段

时间:2018-10-20 17:29:02

标签: sql database ms-access

我正在尝试使用Access跟踪仓库中的可用空间。在表AI中,有一个“已使用宽度”和“货架编号”字段,我希望它基于表B总结“已使用宽度”,其中方框的“货架编号”与表A中的“货架编号”相匹配然后求和表B的“框宽”(可以是多个框,因为每个架子上有多个框),然后将其放到表A中。

为清楚起见,示例:

Table B:
BoxID    Box Width    ShelfID
1        24           2
2        24           2

Table A:
ShelfID    Used Width
2          48

感谢您提供的所有帮助!我尝试构建查询并使用查找向导,但由于我做错了事,它永远无法实现我想要的方式。我没有弄乱对象的依赖关系。我在某处出错了,我也不知道在哪里。到目前为止,我已经在表B中将ShelfID设置为外键,但是据我所知。

编辑: SQL部分不是我要努力解决的地方,而是如何在Access中做到这一点,我无法弄清楚。我正在尝试获取该特定字段(使用的宽度)以从另一张表中提取信息,并且不确定在Access中执行此查找向导的功能或位置。对象依赖关系...这是宏吗?我不经常使用Access,这比过去使用它要复杂一些。

1 个答案:

答案 0 :(得分:1)

您想要一个简单的聚合查询吗?

select shelfId, sum([Box Width]) as used_width
from b
group by shelfId;

要插入值:

insert into a(shelfId, [Used Width])
    select shelfId, sum([Box Width]) as used_width
    from b
    group by shelfId;

通常,您不会将结果放在表中。您可能会为摘要定义一个视图,因此这些值始终是最新的。