2017-09-03 105 views
1

我在MySQL中有两个表,这些表是销售和材料详细信息。 我想要计算我靠卖物品是 profit = (total) -(qty* landedcost)
这里所获得的利润是两个表的结构: ​​将两个不同表中的两列相乘并将它们组合在一起

这是查询

SELECT sale.name ,sale.total-(sale.qty * materialdetails.landingcost) AS 
result 
FROM sale JOIN materialdetails 
on sale.id = materialdetails.id 
GROUP BY sale.name,result; 

结果我得到: query result

我想要类似这样的东西

name   result 
    A4    5000 
Computer  40000 
Flash memory 1000 
Headphone  22000 
Mobile   35000 

有什么想法吗?

回答

1

你应该总结通过sale.name结果和组而已,这样的事情:

SELECT sale.name ,sum(sale.total-(sale.qty * materialdetails.landingcost)) AS 
result 
FROM sale JOIN materialdetails 
on sale.id = materialdetails.id 
GROUP BY sale.name; 

说明:如果按两个字段GROUP BY sale.name,result你会得到一个行有所有的记录同样sale.nameresult,所以例如

name  result 

Computer 10000 
Computer 25000 

是两个不同的线,并且它们没有被分组在一起作为一个。

+0

非常感谢您节省了我的一天,但如果我想总结整个结果即总和,该怎么办? – SMP

+0

@smp添加['with rollup'](https://dev.mysql.com/doc/refman/5.7/en/group-by-modifiers.html)以获得总数,同时保持细节总和。要获得总和,请使用'SELECT sum(...)FROM ...' – user2314737

+0

谢谢我解决的问题,再次感谢您。 – SMP

相关问题