проблема с sum

djamba

Новичок
проблема с sum

Добрый день!
Обыскал весь форум, но подобной задачи не нашел.
Есть две таблици. В первой осушествляется прихд товара, во второй уход. Нужно одним запросом извлечь разницу между этими двумя таблицами.
написал следующий запрос:
SELECT sum( registr.count - registrout.count ) AS summa, registr.id_part
FROM registr, registrout
WHERE registr.id_part = registrout.id_part
GROUP BY registr.id_part, registrout.id_part
LIMIT 0 , 30

Но этот запрос суммирует каждый товар столько раз, сколько строчек будит в результате. Как сделать, чтобы суммирование производилось только один раз?
 

Trianon

Новичок
Код:
SELECT (
    (SELECT SUM(`count`) FROM registr) 
  - 
    (SELECT SUM(`count`) FROM registrout)
 ) AS diff
 

djamba

Новичок
Спасибо, но так он выдает сумму всех строк, а надо чтобы сумму выдовал по id_tovar. К примеру:
1 таблица:
id_tovar, count, price
1,2,1
1,1,3,
3,4,1

2 таблица:
id_tovar, count, price
1, 1,2
3,2,1
1,2,1
В результате нужно:
id_tovar, count
1,3
3,2
 

chira

Новичок
а подумать ...
Код:
SELECT a.sumi-IFNULL(b.sumo,0) summa, a.id_part
FROM (SELECT SUM(`count`) sumi,id_part FROM registr GROUP BY id_part ) a
LEFT JOIN (SELECT SUM(`count`) sumo,id_part FROM registrout GROUP BY id_part ) b ON a.id_part=b.id_part
GROUP BY a.id_part
 
Сверху