如何在两个表中计算库存

q35jwt9p  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(273)

我有这样的第一张table(待定)

id_med  name    stock
1       abc      10
2       bcd      15
3       efd      11

第二张table是这样的(待定)

id_trans   id_med  qty
1          1       4      
2          1       2      
3          2       3

如何计算第一张表中的最后库存或剩余库存?我试过了,但没有显示出3号身份证的剩余库存

SELECT tbl_med.stock, tbl_med.id_med, tbl_med.stock - SUM(tbl_trans.qty) AS stock_left FROM tbl_med
JOIN tbl_trans ON  tbl_med.id_med= tbl_trans.id_med
GROUP BY tbl_med.id_med
c0vxltue

c0vxltue1#

我想你只需要 coalesce() 以及 left join :

SELECT m.stock, m.id_med, m.stock - COALESCE(SUM(t.qty), 0) AS stock_left
FROM tbl_med m LEFT JOIN
     tbl_trans t
     ON m.id_med = t.id_med
GROUP BY m.id_med;

注意,通常在 SELECT 不是的 GROUP BY 键是sql中的错误。但是,如果 GROUP BY 具有表的主键。我想 id_med 是的主键 tbl_med .

相关问题