php - 组合两个表以按成本减去费用进行排序 - 需要复杂的 order by 语句吗?

标签 php mysql sql sql-order-by

我有点坚持我确信这是一个简单的解决方案。困境如下:

我有两个 mysql 表:

一个用于汽车(每个 car_id 都有 car_price_purchase/car_price_sold) 一个是费用(每笔费用都与汽车相关——expense_amount、expense_car_id)

我需要做的是将每辆车的所有费用相加,然后从购买价格中减去该费用加上出售价格,以获得总体利润。

这通常很容易做到,但我想按最终利润金额排序

我是否只是将这些结果存储在一个数组中,然后对该数组进行排序? 或者我可以用更复杂的 order by 语句编写一个复杂的连接 mysql 查询吗??

感谢任何帮助。 谢谢 尼古拉斯

最佳答案

您目前是否正在将计算确定最终利润金额作为查询的一部分,或者随后在 php 中进行?我建议将数学作为查询的一部分,允许您在那里进行排序,即:

SELECT c.car_id, 
(c.car_price_sold - (IFNULL(SUM(e.expense_amount), 0) + c.car_price_purchase)) as profit 
FROM cars c
LEFT JOIN expenses e ON e.expense_car_id = c.car_id 
GROUP BY c.car_id 
ORDER BY profit

关于php - 组合两个表以按成本减去费用进行排序 - 需要复杂的 order by 语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475337/

相关文章:

PHP-ZendFramework : How to use Zend_Translate without the whole framework?

php - 如何在 WordPress 插件中创建注册链接?

Django 中的 Mysql OPTIMIZE TABLE 命令

sql - 如何使用分析窗口 SQL 函数在同一数据集的行组中查找 id 值

php - 如何在 Windows 计算机上使用 PHP 旋转 pdf 内容?

PHP无法连接到MySQL

php - DataMapper ORM 简单的 OneToMany 关系

php - 如何将html格式的信息写入MySQL数据库

sql - 如何在 SQL 中根据匹配百分比比较两个字符串

SQL 从选择中获取唯一值