繁体   English   中英

MySQL 最小最大扣除

[英]MySQL Min Max deduction

我有一个简单的表,用于存储不同车辆的燃料发放详细信息,如下所示:

+----+------------+-----+---------------+-------------+
| 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)我想得到想要的output如下:

举个例子:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM