С нами с 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
но косяк в том, что если есть приход но нет расхода, то в таблицу данные не попадают (
|
|
|
|
С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365
|
Добавлено: 30/10/18 в 10:04 |
m&m писал: | Бьюсь уже сутки, моих знаний mysql явно не хватает..
...
но косяк в том, что если есть приход но нет расхода, то в таблицу данные не попадают ( |
Пришло время погуглить на тему "SQL different types of joins".
|
|
|
|
С нами с 05.01.09
Сообщения: 170
Рейтинг: 173
|
Добавлено: 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;
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |