Sql 如何从表A中一行的多个结果的联接表B中获取总和?
我正在开发一个软件,向用户展示用各种不同标准搜索的sparepart 备件在一个表中(实际上是一个平面BOM表结构),库存数量在另一个表中。库存数量有点问题,因为一个sparepart可以有0到5个不同的位置(行),每个位置(行)的数量不同。这意味着必须对所有不同位置(行)的总库存量进行汇总 假设备件在表备件中,库存量在库存Q中。联接由两个表中的sparepart键ITEMID进行 我如何做到这一点?通常一个查询会产生50到500个备件。我不想一次检查每个零件的库存数量Sql 如何从表A中一行的多个结果的联接表B中获取总和?,sql,oracle,join,sum,one-to-many,Sql,Oracle,Join,Sum,One To Many,我正在开发一个软件,向用户展示用各种不同标准搜索的sparepart 备件在一个表中(实际上是一个平面BOM表结构),库存数量在另一个表中。库存数量有点问题,因为一个sparepart可以有0到5个不同的位置(行),每个位置(行)的数量不同。这意味着必须对所有不同位置(行)的总库存量进行汇总 假设备件在表备件中,库存量在库存Q中。联接由两个表中的sparepart键ITEMID进行 我如何做到这一点?通常一个查询会产生50到500个备件。我不想一次检查每个零件的库存数量 编辑:修复了错误标记,用
编辑:修复了错误标记,用oracle替换了mysql。如果我理解正确,您需要的是总数量,而不是不同位置的数量。您可以使用stockq中的合计数量来实现此连接。 我不确定mysql sintax,但这个查询应该可以完成这项工作
select *
from spareparts S
join (select ITEMID, sum(quantity) as quantity from stockQ group by ITEMID) as Q
on S.ITEMID = Q.ITEMID
如果我理解正确,你想要的是总量,而不是不同地点的数量。您可以使用stockq中的合计数量来实现此连接。 我不确定mysql sintax,但这个查询应该可以完成这项工作
select *
from spareparts S
join (select ITEMID, sum(quantity) as quantity from stockQ group by ITEMID) as Q
on S.ITEMID = Q.ITEMID
太好了,谢谢。顺便说一句:我错误地标记了MySQL,因为它是我使用的最常见的数据库。这里讨论的是Oracle 10g,但它真的没有什么区别。太好了,谢谢。顺便说一句:我错误地标记了MySQL,因为它是我使用的最常见的数据库。这里讨论的是Oracle 10g,但它实际上没有什么区别。