Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从表A中一行的多个结果的联接表B中获取总和?_Sql_Oracle_Join_Sum_One To Many - Fatal编程技术网

Sql 如何从表A中一行的多个结果的联接表B中获取总和?

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个备件。我不想一次检查每个零件的库存数量 编辑:修复了错误标记,用

我正在开发一个软件,向用户展示用各种不同标准搜索的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,但它实际上没有什么区别。