如何从连接表B中获得总和,对表A中的一行得到多个结果?

时间:2010-11-25 11:57:09

标签: sql oracle join sum one-to-many

我正在开发一种软​​件,用于显示用户使用不同标准搜索的备件。

备件位于一个表中(实际上是一个扁平的BOM结构),而库存数量在另一个表中。库存数量有点问题,因为1个备件可能有0到5个不同的位置(行),每个位置(行)可能有不同的数量。这意味着总库存数量必须来自所有不同的位置(行)。

请将备件放在表备件中,并将库存数量放在 stockQ 中。通过 ITEMID 加入,这是两个表中的备用键。

我如何实现这一目标?通常一个查询会产生50到500个备件。我不想一次对每个零件进行库存量检查。

编辑:修复了错误标记,用oracle替换了mysql。

1 个答案:

答案 0 :(得分:6)

如果我理解正确,你需要总量而不是不同位置的数量。您可以使用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