mysql - 将两个不同表中的两列相乘并将它们组合在一起

标签 mysql aggregate-functions

我在 MySQL 中有两个表,分别是销售和 Material 详细信息。 我想计算我通过销售商品获得的利润 利润 =(总计)-(数量* landedcost)
下面是两个表的结构: sale and materialdetails table

这是查询

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

有什么想法吗?

最佳答案

您应该仅按 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.name 的记录 result,例如

name     result

Computer 10000
Computer 25000

是两条不同的线,它们没有组合在一起。

关于mysql - 将两个不同表中的两列相乘并将它们组合在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022286/

相关文章:

sql - 按多列分组的聚合函数

php - 通过php导入sql

带有 WHERE id IN (SELECT ...) 的 mysqldump 产生表 "was not locked"错误

mysql - 同义词列表 : What request to use

mysql - SQL 仅选择列上具有最大值的行

mysql - 使用 count 和 if 的左连接和聚合函数

sql - 为从 Postgres 中提取的列列表中的值创建数组

mysql - 查询未返回预期结果

mysql - 具有 AVG 函数的空集与任意非空集的 UNION

sql - Sqlite 中每个类别的前 n 个计数