计算每次加油的距离和油耗

如何解决计算每次加油的距离和油耗

+--------+------+-------+------------------+------------+------------+-------+-------------+----------+------------------+
| Number |  Id  | Speed |     DateTime     |     x      |     y      | value |  distance   |    ds    |     remarks      |
+--------+------+-------+------------------+------------+------------+-------+-------------+----------+------------------+
| MB125  | 6290 |     0 | 9/24/20 12:05 AM | 73.1095066 | 33.54376   | 405.6 | 0.033162654 | NULL     |                  |
| MB125  | 6290 |    26 | 9/24/20 5:38 PM  | 73.1548833 | 33.5737866 | 398.8 | 0.45217702  | 3.2      | Filling(3.2)     |
| MB125  | 6290 |     0 | 9/26/20 3:42 PM  | 71.2384983 | 31.502485  | 189.4 | 0           | 0.9      | adjustment (0.9) |
| MB125  | 6290 |     0 | 9/26/20 4:13 PM  | 71.2351549 | 31.4826683 | 389   | 0.144494657 | 202.5    | Filling(202.5)   |
| MB125  | 6290 |     5 | 9/26/20 4:15 PM  | 71.2348366 | 31.4813966 | 392.6 | 0.182010336 | 3.6      | Filling(3.6)     |
| MB125  | 6290 |     5 | 9/26/20 4:17 PM  | 71.2351333 | 31.4797783 | 392.3 | 0.139413206 | -0.3     |                  |
| MB125  | 6290 |    16 | 9/27/20 11:44 AM | 71.637325  | 29.3697783 | 260.2 | 0.453226377 | 0        |                  |
| MB125  | 6290 |    19 | 9/27/20 11:46 AM | 71.641335  | 29.3718816 | 260.7 | 0.343467266 | 0.5      | adjustment (0.5) |
| MB125  | 6290 |     0 | 9/27/20 11:48 AM | 71.6439233 | 29.373995  | 260.1 | 0.07865584  | -0.6     |                  |
| MB125  | 6290 |     0 | 9/27/20 1:02 PM  | 71.6434633 | 29.3734116 | 400.6 | 0.00648517  | 140.5    | Filling(140.5)   |
| MB125  | 6290 |     0 | 9/29/20 6:15 PM  | 67.2537633 | 24.8577533 | 150.5 | 0.036963575 | 0.4      | adjustment (0.4) |
| MB125  | 6290 |     8 | 9/29/20 6:17 PM  | 67.253455  | 24.8575733 | 150   | 0.163134678 | -0.5     |                  |
| MB125  | 6290 |     0 | 9/29/20 6:19 PM  | 67.25335   | 24.8561083 | 151.4 | 0.000750227 | 1.4      | adjustment (1.4) |
| MB125  | 6290 |     0 | 9/29/20 6:21 PM  | 67.253355  | 24.8561033 | 151.9 | 0.065821168 | 0.5      | adjustment (0.5) |
| MB125  | 6290 |     5 | 9/29/20 6:23 PM  | 67.253165  | 24.85667   | 151.2 | 0.004457236 | -0.7     |                  |
| MB125  | 6290 |     0 | 9/29/20 6:25 PM  | 67.2531683 | 24.85663   | 169.6 | 0           | 18.4     | Filling(18.4)    |
| MB125  | 6290 |     0 | 9/29/20 6:29 PM  | 67.2531683 | 24.85663   | 315.7 | 0.074685692 | 146.1    | Filling(146.1)   |
| MB125  | 6290 |     9 | 9/29/20 6:31 PM  | 67.2525283 | 24.8562916 | 366.2 | 0.099031196 | 50.5     | Filling(50.5)    |
| MB125  | 6290 |     0 | 9/29/20 6:33 PM  | 67.2515583 | 24.8561516 | 382.4 | 0           | 16.2     | Filling(16.2)    |
| MB125  | 6290 |     0 | 9/29/20 6:35 PM  | 67.2515583 | 24.8561516 | 386.2 | 0.017310501 | 3.8      | Filling(3.8)     |
| MB125  | 6290 |     0 | 9/30/20 11:59 PM | 67.0170466 | 24.83925   | 381.8 | NULL        | -1.2     |                  |
+--------+------+-------+------------------+------------+------------+-------+-------------+----------+------------------+

必需的输出

+--------+------+------------------+------------------+------------+------------+------------+-----------+------------+----------+----------+---------+
| Number |  Id  |    from date     |      todate      |   from x   |   from y   |    To x    |   To Y    | from Value | to Value | distance | Filling |
+--------+------+------------------+------------------+------------+------------+------------+-----------+------------+----------+----------+---------+
| MB125  | 6290 | 9/24/20 12:05 AM | 9/26/20 3:42 PM  | 73.1095066 | 33.54376   | 71.2384983 | 31.502485 | 405.6      | 189.4    | 0.8118   | 206.1   |
| MB126  | 6291 | 9/26/20 4:15 PM  | 9/27/20 11:48 AM | 71.2348366 | 31.4813966 | 71.6439233 | 29.373995 | 392.6      | 260.1    | 1.014    | 140.5   |
+--------+------+------------------+------------------+------------+------------+------------+-----------+------------+----------+----------+---------+

我想计算每次填充的车辆距离和燃油消耗。我正在使用以下查询来提取所需的结果,并且在加油时将结果分开。我正在使用sql server 2012提取所需的结果。

SELECT
    Number,ObjectId,VectorSpeed,GpsTime,x,y,[value],distance,ds,CASE 
        WHEN ( CAST( ds AS float(5) ) > CAST( 0 AS float(5) ) ) AND ( CAST( ds AS float(5) ) <= CAST( 3 AS float(5) ) ) THEN 'adjustment (' + ds + ')'
        ELSE [status]
    END AS remarks
FROM (

    SELECT
      *,CASE
        WHEN ( [value] - ( LAG( [value] ) OVER ( ORDER BY t.GpsTime ) ) ) > 0 then 'Filling(' + CAST( [value] - ( LAG( [value] ) OVER ( ORDER BY t.GpsTime ) ) AS varchar(50) ) + ')'
        ELSE ''
      END AS 'status',CAST( [value] - ( LAG( [value] ) OVER ( ORDER BY t.GpsTime ) ) AS varchar(50) ) AS ds,LAG( [value] ) OVER ( ORDER BY t.GpsTime ) AS PreviousValue,LEAD( [value] ) OVER ( ORDER BY t.GpsTime ) AS NextValue,tavl2.tavl.fn_GpsUtil_Distance(
        x,LEAD( x ) OVER ( PARTITION BY objectid ORDER BY GpsTime ),LEAD( y ) OVER ( PARTITION BY objectid ORDER BY GpsTime )
      ) AS distance
    FROM (
        
        SELECT
          LEAD( m.VectorSpeed ) OVER ( PARTITION BY o.ObjectId,o.Number ORDER BY m.GpsTime ) AS NextSpeed,LAG( m.VectorSpeed ) OVER ( PARTITION BY o.ObjectId,o.Number ORDER BY m.GpsTime ) AS PrevSpeed,o.Number,m.ObjectId,[value]
        FROM tavl2.tavl.Object o
          JOIN tavl2.tavl.Message m ON o.ObjectId = m.ObjectId
          JOIN tavl2.tavl.MessageData md ON m.MessageId = md.MessageId
          JOIN tavl2.tavl.DataSource ds ON md.DataSourceId = ds.DataSourceId
        WHERE
          m.ObjectId = 6290
          AND CONVERT( date,GpsTime ) >= CONVERT( date,'2020/9/24' )
          AND CONVERT( date,GpsTime ) <= CONVERT( date,'2020/9/30' )
          AND [name] LIKE '%Fuel Level%'
          AND [value] > 1
      
    ) AS t
    WHERE
      t.VectorSpeed <> COALESCE( t.NextSpeed,-1 )
      OR t.VectorSpeed <> COALESCE( t.PrevSpeed,-1 )

) AS main;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-