问:我很难在mysql查询中完成以下任务。
任务是获取所有产品(如果产品是重复的,它的和的qty__),并扣除浪费库存(如果浪费产品是重复的和的qty__)。
我有两张桌子,
1) manage_stock 2) manage_wastage
manage_stock
=>这个表有p_id(Product )和许多带有产品复制的行。
p_id p_name p_qty
1 Pro-1 10
2 Pro-2 15
3 Pro-3 8
1 Pro-1 15manage_wastage
=>这个表有manage_stock表的p_id(Product )。它也是许多行与产品复制的。
p_id w_qty
1 2
1 4
3 5期望输出
p_id p_name p_qty w_qty final_qty
1 Pro-1 20 6 14
2 Pro-2 15 0 15
3 Pro-3 8 5 3非常感谢。
发布于 2017-07-20 11:22:46
您只需计算库存数量与损耗之间的差额即可。
SELECT s.p_id, s.p_name, SUM(p_qty), SUM(w_qty), SUM(p_qty) - SUM(w_qty) as final_qty
FROM manage_stock s
LEFT OUTER JOIN manage_wastage w
ON s.p_id = w.p_id
GROUP BY s.p_id, s.p_name发布于 2017-07-20 11:24:01
SELECT ms.p_id ,GROUP_CONCAT(ms.p_name)p_name ,SUM(ms.p_qty) p_qty ,SUM(mw.w_qty) w_qty,SUM(ms.p_qty)-SUM(mw.w_qty) final_qty FROM manage_stock ms
INNER JOIN manage_wastage mw on ms.p_id =mw.p_id
GROUP BY ms.p_id 试试上面的代码。
由于p_name在p_id中总是唯一的,所以GROUP_CONCAT()只返回单个名称。
发布于 2017-07-20 11:46:11
试试这个
SELECT s.p_id, s.p_name, SUM(p_qty),SUM(ifnull(w_qty, 0)),SUM(p_qty - ifnull(w_qty, 0)) as total
FROM manage_stock s
left outer JOIN manage_wastage w
ON s.p_id = w.p_id
GROUP BY s.p_name它的工作
https://stackoverflow.com/questions/45213102
复制相似问题