Реализовать группировку, суммирование и вычитание таблиц в запросе SQL
В БД есть 3 таблицы. Нужно сделать запрос, что бы из просуммированного поля QUANTITY первой таблицы вычесть просуммированные поля с этим же кодом товара второй и третьей таблицы. GOOD - код товара
SELECT dst.GOOD, SUM(QUANTITY) FROM DOC_SESSION_TABLE dst
WHERE GOOD=12300
GROUP BY GOOD
(данный запрос выдает: 12300 | 150)
SELECT dst2.GOOD, SUM(QUANTITY) FROM DOC_SALE_TABLE dst2
WHERE GOOD=12300
GROUP BY GOOD
(данный запрос выдает: 12300 | 100)
SELECT dbt.GOOD, SUM(QUANTITY) FROM DOC_BALANCE_TABLE dbt
WHERE GOOD=12300
GROUP BY GOOD
(данный запрос выдает: 12300 | 5)
Необходимый запрос должен вывести: 12300 | 45
Ответы (1 шт):
Автор решения: Andrew Nikolaev
→ Ссылка
Это то, о чём говорит @Mike
SELECT SQ.GOOD, SUM(SQ.QUANTITY) FROM
(
SELECT dst.GOOD, dst.QUANTITY FROM DOC_SESSION_TABLE dst WHERE dst.GOOD=12300
UNION ALL
SELECT dst2.GOOD, -dst2.QUANTITY FROM DOC_SALE_TABLE dst2 WHERE dst2.GOOD=12300
UNION ALL
SELECT dbt.GOOD, -dbt.QUANTITY FROM DOC_BALANCE_TABLE dbt WHERE dbt.GOOD=12300
) SQ
GROUP BY SQ.GOOD