yarhosting
@yarhosting
Заказывайте программинг: PHP,SQL, JS,jQuery,Joomla

Правильно написать запрос SELECT sum(таблица1.sum — таблица2.sum )... GROUP BY id для вывода остатков по номенклатуре?

Есть две таблицы: покупка и продажа

SELECT nomenclature_id, summa FROM sale
SELECT nomenclature_id, summa FROM buy

Как вывести остатки в разрезе по номенклатуре

что-то вроде:

SELECT nomenclature_id, SUM ( buy.summa - sale.summa ) FROM (SELECT nomenclature_id, summa FROM sale) (SELECT nomenclature_id, summa FROM buy) GROUP BY nomenclature_id
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT buy.nomenclature_id, 
  SUM ( buy.summa ) 
    - (SELECT ISNULL(SUM( sale.summa ),0) 
      FROM sale WHERE sale. nomenclature_id = buy. nomenclature_id)
  FROM buy
  GROUP BY buy.nomenclature_id
UNION
SELECT nomenclature_id, - SUM(summa)
  FROM sale
  GROUP BY nomenclature_id
  HAVING (NOT (nomenclature_id IN (SELECT DISTINCT nomenclature_id FROM buy)))
Ответ написан
LaRN
@LaRN
Senior Developer
Можно вот так попробовать.
WITH amount AS
 (
   SELECT buy.nomenclature_id, sum(buy.summa) as summa
    FROM buy
   GROUP BY buy.nomenclature_id
   UNION ALL
  SELECT sale.nomenclature_id, -1*sum(sale.summa) as summa
    FROM sale
   GROUP BY sale.nomenclature_id
  )
 SELECT nomenclature_id, sum(summa) as summa
   FROM amount 
  GROUP BY nomenclature_id
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы