繁体   English   中英

根据匹配条件连接表,并从Table1的总和中减去Table2.Seantity的数量。匹配行的数量

[英]Join tables based on matching criteria and Subtract the sum of Table2.Quantity from sum of Table1.Quantity for matching rows

我使用下面的代码: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;

看起来你需要先做组,计算每个表的总和 - 然后进行减法;

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

代码未经测试,可能以更好的方式完成 - 但这应该有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM