2013-03-06 4 views
0

J'ai 2 tables: stock_material_details et stock_consumed ayant un item_id déposé commun. Les détails stock_material ont ajouté_quantité en tant que colonne et stock_consumed en tant que consommé_quantité en tant que colonne.mysql résumer deux colonnes

Chaque fois qu'un article est ajouté en stock, il sera ajouté en stock_material_details (tableau) sous la quantité ajoutée.

Chaque fois qu'un article est consommé, il sera ajouté dans stock_consumed sous comsumed_quantity.
Je veux écrire une requête obtenir la quantité totale disponible d'un élément particulier par quelque chose comme ceci:

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 

La requête ci-dessus ne donne pas donc le bon résultat de Incase plusieurs lignes de data.Need quelques conseils.

+0

par a.id ... désolé – user2139234

+0

Vous pouvez modifier votre propre question pour corriger des choses comme ça (je l'ai fait pour vous cette fois) – Bohemian

+0

Fournir des données d'échantillon et la production attendue - il nous aidera à comprendre ce que vous voulez dire (cod I pour un pas) – Bohemian

Répondre

0

sélectionner item_id, somme (a.added_quantity) - somme (b.quantity_consumed) disponible auprès de stock_material_details une jointure stock_consumed b sur le groupe a.item_id = b.item_id par a.item_id

essayer d'ajouter « item_id "dans select.

J'essaie d'utiliser votre code mais ce n'est pas un travail.

essayer celui-ci:

sélectionner item_id, SUM (added_quantity) - (Sélectionnez SUM (quantity_consumed) de stock_consumed b où b.item_id = item_id) DE stock_material_details Groupe par item_id

espoir fonctionner cos i je suis seulement compiler à l'intérieur de mon esprit

que la force soit avec vous

0

Pour mélanger deux agrégats diffrent vous Gonna les sous-requêtes de besoin:

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

Si vous n'êtes pas garder une trace de chaque élément dans les résultats, il est impossible de dire ce que les chiffres correspondent à:

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 
groupe