mysql - MySQL Min Max 扣除
问题描述
我有一个简单的表,用于存储不同车辆的燃料发放详细信息,如下所示:
+----+------------+-----+---------------+-------------+
| id | vehicle_no | qty | meter_reading | date_issued |
+----+------------+-----+---------------+-------------+
| 1 | 366 | 50 | 10500 | 2019-09-01 |
| 2 | 366 | 50 | 11020 | 2019-09-02 |
| 3 | 367 | 25 | 25000 | 2019-09-03 |
| 4 | 366 | 50 | 11450 | 2019-09-04 |
| 5 | 368 | 50 | 6000 | 2019-09-05 |
+----+------------+-----+---------------+-------------+
02)然后我需要找到没有与已发布的燃料量总和相匹配的公里数。
03)我使用了以下查询
select f1.vehicle_no, (select f1.meter_reading-f2.meter_reading)/sum(qty) from fuel f1) from fuel f2 group by vehicle_no
04)我想得到所需的输出如下:
举个例子 :
the meter reading of id=4 - meter reading of id=2 is 430 Kilometers
the meter reading of id=4 - meter reading of id=1 is 950 Kilometers
the meter reading of id=2 - meter reading of id=1 is 520 Kilometers
但我没有得到预期的结果。谁能帮我 ?
解决方案
自加入:
select
f.id,
ff.id,
f.vehicle_no,
f.date_issued,
ff.date_issued,
f.meter_reading - ff.meter_reading as dif
from fuel f inner join fuel ff
on ff.vehicle_no = f.vehicle_no and ff.date_issued < f.date_issued
请参阅演示。
结果:
> id | id | vehicle_no | date_issued | date_issued | dif
> -: | -: | ---------: | :------------------ | :------------------ | --:
> 2 | 1 | 366 | 2019-09-02 00:00:00 | 2019-09-01 00:00:00 | 520
> 4 | 1 | 366 | 2019-09-04 00:00:00 | 2019-09-01 00:00:00 | 950
> 4 | 2 | 366 | 2019-09-04 00:00:00 | 2019-09-02 00:00:00 | 430
推荐阅读
- python - 查看从 Django 下载 FileField
- javascript - 修复 jQuery 代码问题或将 jQuery 转换为 JavaScript
- regex - MariaDB REGEXP_REPLACE 反向引用在 FUNCTION 中不起作用
- arrays - 如何在 MATLAB 中将 mxn 矩阵转换为(每行为)逗号分隔的文本文件?
- asp.net-mvc - 如何使用 rest api 控制器后端调试 MVC Web 应用程序?
- node.js - 如何使用 Now 启动 Express 应用程序?
- apache - 将 Apache HTTP Server 中的 cookie 限制从 4KB 增加到 8KB/12KB
- ios - IOS 应用转移到新的开发者帐户后,Firebase 动态链接停止工作
- c# - .NET 正则表达式(类似于 perl),用于检测连续粘贴两次的文本
- django - Python Django - 将 ForeignKey 与用户相关联。IntegrityError NOT NULL 约束失败