несколько функций солнца в запросе в нескольких таблицах - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть 3 таблицы в базе данных mySQL. продукт, stock_in, stock_out .Я хочу суммировать складские запасы и складские запасы каждого продукта по product_id .
. Я использую этот запрос ниже.Но это дает мне несколько ложных ответов.

SELECT product.Product_Name, SUM(stock_in.StockInQuantity) as stockin, S
        SUM(stock_out.Quantity) as stockout 
FROM product, stock_in, stock_out 
WHERE stock_in.Product_ID=product.Product_ID 
and stock_out.Product_ID=product.Product_ID 
GROUP BY product.Product_ID**

Но если я использую отдельные запросы для stockin и stockout, результаты будут правильными.

SELECT Product_Name, SUM(StockInQuantity) as stockin 
FROM product, stock_in 
WHERE stock_in.Product_ID=product.Product_ID 
GROUP BY product.Product_ID


SELECT Product_Name, SUM(Quantity) as stockout 
FROM product, stock_out 
WHERE stock_out.Product_ID=product.Product_ID 
GROUP BY product.Product_ID**

Поэтому, пожалуйста, дайте мне решение найти результат в одном запросеили выводить результаты двух результатов запроса в одну таблицу ..

1 Ответ

0 голосов
/ 18 декабря 2018

Вы можете попробовать ниже запрос:

SELECT p.product_name AS Product_Name,
   COALESCE(SUM(si.stockin), 0) AS total_stockin,
   COALESCE(SUM(so.stockout), 0) AS total_stockout,
FROM product p
LEFT JOIN (SELECT Product_ID, SUM(StockInQuantity) AS stockin
       FROM stock_in 
       GROUP BY Product_ID) si ON si.Product_ID = p.Product_ID
LEFT JOIN (SELECT Product_ID, SUM(Quantity) AS stockout
       FROM stock_out 
       GROUP BY Product_ID) so ON so.Product_ID = p.Product_ID
GROUP BY Product_Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...