Реклама на сайте Advertise with us

Помогите с SQL запросом

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 05.04.04
Сообщения: 378
Рейтинг: 368

Ссылка на сообщениеДобавлено: 30/10/18 в 09:45       Ответить с цитатойцитата 

Бьюсь уже сутки, моих знаний mysql явно не хватает..

есть 3 таблицы

в таблице product наименование продукции
productadd приходы
producttask списания

нужно получить таблицу вида, product_id, приход - расход

моих знаний хватило на это
SELECT p.id, p.name, z.SummQty
FROM product p
LEFT JOIN
(
SELECT a.product_id,
SUM(a.qty) - g.SumQty SummQty
FROM productadd a LEFT JOIN (
SELECT product_id, SUM(qty) SumQty
FROM producttask
GROUP BY product_id
) g ON a.product_id = g.product_id
GROUP BY product_id
) z ON z.product_id=p.id

но косяк в том, что если есть приход но нет расхода, то в таблицу данные не попадают (

0
 



С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365

Ссылка на сообщениеДобавлено: 30/10/18 в 10:04       Ответить с цитатойцитата 

m&m писал:
Бьюсь уже сутки, моих знаний mysql явно не хватает..
...
но косяк в том, что если есть приход но нет расхода, то в таблицу данные не попадают (

Пришло время погуглить на тему "SQL different types of joins".

2
 



С нами с 05.01.09
Сообщения: 167
Рейтинг: 172

Ссылка на сообщениеДобавлено: 31/10/18 в 20:48       Ответить с цитатойцитата 

SELECT
p.id,
p.name,
(SUM(IFNULL(a.qty, 0)) - SUM(IFNULL(t.qty, 0))) AS balance
FROM product AS p
LEFT JOIN productadd AS a ON a.product_id = p.id
LEFT JOIN producttask AS t ON t.product_id = p.id
GROUP BY p.id;

2
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »