Объедините таблицы на основе критериев соответствия и вычтите сумму Table2.Quantity из суммы Table1.Quantity для соответствующих строк - PullRequest
0 голосов
/ 20 марта 2019

Я использую код ниже: table1-add, table2-remove

SELECT add.description, add.size, (sum(add.qty) - sum(remove.qty)) AS OnHand
`FROM add LEFT JOIN remove ON (add.description = remove.description) AND `(add.size = remove.size) 
group by add.description, add.size
OnHand FROM add RIGHT JOIN remove ON (add.description = remove.description) AND 
(add.size = remove.size) WHERE add.description IS NULL and add.size is null 
group by add.description, add.size;

Моя цель выражена в заголовке.

Я пробовал несколько других подходов, но это несуммировать столбцы перед вычитанием.Вычитается только первая подходящая запись.

Другие подходы:

SELECT add.description, add.size, sum(add.qty) - sum(remove.qty) AS OnHand
FROM add INNER JOIN remove 
ON add.description = remove.description
WHERE add.size = remove.size
GROUP BY add.description, add.size;

1 Ответ

0 голосов
/ 20 марта 2019

Похоже, вам нужно сначала сделать группы, чтобы вычислить сумму каждой таблицы, а затем выполнить вычитание;

SELECT t1.description, t1.size, (sum_add - sum_rem) AS OnHand
FROM 
( SELECT add.description, add.size, sum(add.qty) as sum_add from add GROUP BY add.description, add.size )t1 
INNER JOIN 
( SELECT remove.description, remove.size, sum(remove.qty) as sum_rem from remove GROUP BY remove.description, remove.size )t2
ON t1.description = t2.description and t1.size = t2.size

Код не проверен и, вероятно, может быть выполнен лучше, но это должно сработать.

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