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

hei*_*kim 1 sql oracle join sum one-to-many

我正在开发一个软件,显示用户使用不同标准搜索的备件.

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

让它是关于浴室的建议是在表厨房规划建议中和库存数量stockQ.由ITEMID加入,这是两个表中的备用键.

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

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

il_*_*uru 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
Run Code Online (Sandbox Code Playgroud)