2013-03-06 196 views
0

我有2个表格:stock_material_details和stock_consumed有一个常见的已存档item_id。 stock_material详细信息已将added_quantity作为列并将stock_consumed作为consume_quantity作为列。mysql总结两列

每次将商品添加到库存时,它都将添加到stock_material_details(表格)下的added_quantity下。

每次消耗一个物品时,它将被添加到stock_consumed的comsumed_quantity下。
我想编写一个查询被什么东西可以让特定项目的总量是这样的:

select sum(a.added_quantity) - sum(b.quantity_consumed) as available 
from stock_material_details a 
join stock_consumed b on a.item_id = b.item_id 
group by a.id 

上述查询,以便不给正确的结果柜面data.Need的多行一些建议。

+0

组...对不起 – user2139234 2013-03-06 09:58:17

+0

您可以编辑自己的问题纠正像这样的东西(我这次为你做了) – Bohemian 2013-03-06 09:59:46

+0

提供样本数据和预期的输出 - 它将帮助我们理解你的意思(鳕鱼我一个人不) – Bohemian 2013-03-06 10:00:40

回答

0

选择ITEM_ID,总和(a.added_quantity) - 和(b.quantity_consumed)如可从stock_material_details一个由a.item_id

尝试添加“ITEM_ID加入stock_consumed B关于a.item_id = b.item_id组“在选择。

我尝试在那里使用你的代码,但它不工作。

试试这个:

选择ITEM_ID,SUM(added_quantity) - 由ITEM_ID

希望因为我的工作(选择SUM(quantity_consumed)从stock_consumed b,其中b.item_id = ITEM_ID)FROM stock_material_details集团我只是编译我的脑海里

愿原力与你同在

0

混合两种不同势聚集你会需要子查询:

SELECT sum(a.sum_a) - sum(b.sum_b) AS available FROM 
(SELECT a.item_id, sum(a.added_quantity) AS sum_a 
FROM stock_material_details a 
GROUP BY a.id) AS a 
JOIN 
(SELECT b.item_id, sum(b.quantity_consumed) AS sum_b 
FROM stock_consumed b 
GROUP BY b.id) AS b 
ON a.item_id = b.item_id 
0

如果你没有保持跟踪每个项目的结果,这是不可能告诉什么数字对应于:通过a.id

select a.item_id, sum(a.added_quantity) - sum(b.quantity_consumed) as available 
from stock_material_details a 
join stock_consumed b on a.item_id = b.item_id 
group by a.id