2013-03-06 5 views
0

У меня есть 2 таблицы: stock_material_details и stock_consumed с общим filed item_id. Сведения о запасе_материала добавили_quantity в качестве столбца и stock_consumed как consumed_quantity в качестве столбца.mysql суммировать два столбца

Каждый раз, когда предмет добавляется к запасу, он будет добавлен в stock_material_details (table) под добавленным_quantity.

Каждый раз, когда предмет потребляется, он будет добавлен в share_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

группе A.id ... извините – user2139234

+0

Вы можете редактировать свои собственные вопрос для исправления таких вещей (я сделал это для вас на этот раз) – Bohemian

+0

Предоставьте пример данных и ожидаемый результат - это поможет нам понять, что вы имеете в виду (треска I для этого не требуется) – Bohemian

ответ

0

выберите item_id, сумма (a.added_quantity) - сумма (b.quantity_consumed), выдаваемое stock_material_details объединения stock_consumed б на a.item_id = b.item_id группе a.item_id

пытаются добавить «item_id msgstr "выбрать.

Я стараюсь использовать ваш код там, но его не работает.

попробовать это один:

выберите ITEM_ID, SUM (added_quantity) - (выберите SUM (quantity_consumed) из stock_consumed б где b.item_id = item_id) ОТ stock_material_details Группа по ITEM_ID

надеюсь, это работает, потому что я я только скомпилировать его в моем сознании

май Сила пребудет с вами

0

смешать две diffrent агрегатов тебе понадобится подзапросы:

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

Если вы не отслеживании каждого элемента в результатах, то нельзя сказать, что эти цифры соответствуют:

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 
Смежные вопросы