如何在MySQL中显示My Output

时间:2016-01-08 20:02:38

标签: mysql sql

我在MySQL中有2个表

首先是Sale,第二个是Purchase我想查看股票

http://liveweave.com/Ls8x3p

这是包含我的销售表 日期数量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

这是查询和结果是我想要的输出

enter image description here

2 个答案:

答案 0 :(得分:0)

你不能像你一样加入这两个表。

当你加入两个表时,你可以想象(它不是真正发生的事情,但它有助于理解结果)它们的所有可能的行组合都会被评估,然后根据“where”约束进行过滤。 / p>

尝试模拟此过程,您将看到结果是您所期望的。

答案 1 :(得分:0)

它对JOIN不太好,因为每个表中的每一行都会出现在第二个表中匹配的次数。这就是为什么你得到所有这些额外的stockOut。

我会UNION 2个查询,一个在售,一个在购买,有ProductName,Date和StockIn(对于购买时的查询会是负面的)

然后我会GROUP BY ProductName和Date以及SUM StockIn