从第二个表中获取3列的总SUM和多个记录

时间:2019-03-09 17:18:56

标签: mysql sql

早晨

我有2个表,它们之间的关系是box_id。

第一个表的结构为:

box_id    | box_name | length | width | depth
---------------------------------------------
1         | box_1    | 30     | 30    | 20

它具有一个存储箱的详细信息,即。名称,宽度,长度深度等。

第二张表在该框中列出了内容清单...

id    | bid | product_name | prod_length | prod_width | prod_height
-------------------------------------------------------------------
1     | 1    | phone case  | 12          | 6          | 2 
2     | 1    | watch       | 8           | 8          | 7        
3     | 1    | perfume     | 16          | 10         | 14 

使用SQL im来获取包装箱的详细信息,包括包装箱的(长*宽*深度/ 10),以获取包装箱的总容量,以及包装箱中产品消耗的总体积盒子。

结果

box_id | box_name | volume  | volume remaining
----------------------------------------------
1      | box_1    | 1800 cm3 | xyz cm3

这是我到目前为止使用的SQL。

select box_name, width, length, depth, (width * length * depth / 10) AS totalVolume from storage...

我不确定如何获取清单详细信息,以及查看剩余或消耗的量。

致谢

1 个答案:

答案 0 :(得分:0)

内容量将来自这样的查询:

select bid, sum(prod_lengt * prod_width * prod_height) as volume
from inventory
group by bid;

您可以使用join来比较音量:

select b.*,
       (length * width * height) as box_volume,
       bi.volume as inventory_volume
from boxes b left join
     (select bid, sum(prod_length * prod_width * prod_height) as volume
      from inventory
      group by bid
     ) bi
     on bi.bid = b.id;

您可以减去两者或采用比率。但是不要过度解释结果。很难根据尺寸来确定一个“盒子”中可以容纳多少“库存”。数量的总和不足以回答这个问题。