Как объединиться с объединением - PullRequest
0 голосов
/ 26 марта 2020

Я очень новичок в SQL, и мне было интересно, кто-нибудь может помочь мне найти количество в наличии (dqty-sqty) для каждого iname? Это то, что я пытался сделать до сих пор, но общее количество, которое я получаю, неверно:

select delivery.iname, sum(dqty-sqty) as "Quantity on Hand"    
from sale join delivery on    
sale.iname=delivery.iname    
group by delivery.iname    
order by delivery.iname;

Большое спасибо!

enter image description here

1 Ответ

1 голос
/ 26 марта 2020

вам нужно взять сумму доставленных и проданных предметов по отдельности, так как JOINs не будет работать непосредственно на столах, так как между двумя столами many to many relationship.

Попробуйте это:

SELECT D.INAME, DQTY - SQTY AS "Quantity on Hand"
FROM
(SELECT DELIVERY.INAME, SUM(DQTY) DQTY
FROM DELIVERY
GROUP BY DELIVERY.INAME) D
LEFT JOIN
(SELECT SALE.INAME, SUM(SQTY) SQTY
FROM SALE
GROUP BY SALE.INAME) S
ON D.INAME = S.INAME;

Я использовал LEFT JOIN на случай, если товар не продается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...