我在MySQL中有2个表
首先是Sale
,第二个是Purchase
我想查看股票
这是包含我的销售表 日期数量ProductName
这是我的购买表,其中包含销售所具有的理智属性 我执行查询,但我不能得到我的欲望输出
SELECT sale.Date, sale.ProductName, SUM(sale.StockQuantityIn) as StockIN,
SUM(purchase.StockQuantityout) as Stockout,
(SUM(sale.StockQuantityIn)-SUM(purchase.StockQuantityout)) as stock
from sale
join purchase on purchase.ProductName=sale.ProductName
GROUP BY sale.Date,purchase.Date ,purchase.ProductName,sale.ProductName
这是查询和结果是我想要的输出
答案 0 :(得分:0)
你不能像你一样加入这两个表。
当你加入两个表时,你可以想象(它不是真正发生的事情,但它有助于理解结果)它们的所有可能的行组合都会被评估,然后根据“where”约束进行过滤。 / p>
尝试模拟此过程,您将看到结果是您所期望的。
答案 1 :(得分:0)
它对JOIN
不太好,因为每个表中的每一行都会出现在第二个表中匹配的次数。这就是为什么你得到所有这些额外的stockOut。
我会UNION
2个查询,一个在售,一个在购买,有ProductName,Date和StockIn(对于购买时的查询会是负面的)
然后我会GROUP BY
ProductName和Date以及SUM
StockIn