计算里程差

CREATE TABLE [dbo].[CarData](
    [CarID] [int] NULL,
    [Mileage] [int] NULL,
    [M_year] [int] NULL,
    [M_Month] [int] NULL,
    [M_Day] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 10, 2015, 1, 1)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 15, 2015, 1, 2)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 15, 2015, 1, 5)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 20, 2015, 1, 6)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 26, 2015, 1, 9)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 30, 2015, 1, 10)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 35, 2015, 1, 11)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (2, 20, 2015, 1, 5)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (2, 22, 2015, 1, 8)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (2, 40, 2015, 1, 10)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (2, 45, 2015, 1, 11)
INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (3, 50, 2015, 1, 11)
go
/****** Script for SelectTopNRows command from SSMS  ******/
with cte
as
(
SELECT [CarID]
      ,[Mileage]
      ,[M_year]
      ,[M_Month]
      ,[M_Day]
      ,ROW_NUMBER() over (PARTITION by carid order by m_month,m_day) as 分组内序号
  FROM [test].[dbo].[CarData]
)
--计算里程增量及累积里程
select a.CarID
,a.Mileage
,增量=
        COALESCE
        (
            (
                select a.mileage-b.Mileage from cte b
                where a.CarID=b.CarID and a.分组内序号-b.分组内序号 =1
            ),0
        )
,累积里程=
  (select sum(b.Mileage) from cte as b where a.CarID=b.CarID and a.分组内序号>=b.分组内序号)
,a.M_year
,a.M_Month
,a.M_Day
from cte a
go
时间: 2025-01-05 22:40:31

计算里程差的相关文章

jstl 计算日期差

<fmt:parseDate var="start_date" value= "${start_date}" pattern= "yyyy-MM-dd" /> <!-- 把日期字符串转成日期类型 --> <fmt:parseDate var="end_date" value= "${end_date}" pattern= "yyyy-MM-dd" />

计算天数差、获取当前时间、获取百分比

//计算天数差 function getDayNumber(date1, date2) { //默认格式为"20030303",根据自己需要改格式和方法 var year1 = date1.substr(0, 4); var year2 = date2.substr(0, 4); var month1 = date1.substr(4, 2); var month2 = date2.substr(4, 2); var day1 = date1.substr(6, 2); var day

hive计算日期差

首先,hive本身有一个UDF,名字是datediff.我们来看一下这个日期差计算的官方描述,(下面这个是怎么出来的): hive> desc function extended datediff; OK datediff(date1, date2) - Returns the number of days between date1 and date2 date1 and date2 are strings in the format 'yyyy-MM-dd HH:mm:ss' or 'yyy

js 比较日期大小及计算日期差

计算两个日期的差        var first = new Date(objstart.value.replace(/-/g,"/"));        var second = new Date(objend.value.replace(/-/g,"/"));         alert("日期1比日期2大:"+(first-second)/(24*60*60*1000)); 比较两个日期的大小        var date1 = new

7.08 计算累计差

问题:对于数字列中的值,计算其累计差.例如:计算DEPTNO 10中工资的累计差. select a.empno,a.ename,a.sal,(select case when a.empno=min(b.empno) then sum(b.sal)else sum(-b.sal)endfrom emp b where b.empno<=a.empnoand b.deptno=a.deptno) as rnkfrom emp awhere a.deptno=10;

学生字典计算年龄差 随机50个数

OC第四讲 数组.字典.集 1.取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出 2.随机获得100个50-100的数字字符串,存入一个数组,最后打印输出这个数组(arc4random()) 3. 创建一个Student类,将学员信息存放进一个字典,将3个学员信息的字典存放到一个数组 4. 选取第一个学员和最后一个学员输出其姓名,并计算他们年龄的差值 5.自学NSSet,然后讲第二题中的重复数字去掉,输出结果数组 王政-成都睿峰科技有限公  15:25:29 研究性

js验证两个日期是否是同一个年月,并计算天数差

/*** 将日期转化为 yyyy-MM 格式 .* 帮助验证 两个时间要在同一个年月份* @param dateStr*/function formatYearMonth(b_date){    var b_date_year = b_date.getYear();    var b_date_month = b_date.getMonth()+1; if(b_date_month < 10){        b_date_month = "0" + b_date_month ;

有了这个公式,妈妈再也不用担心我计算日期差了

一直以来计算两个日期的间隔天数很让我们头大,比如计算2014/3/23和1993/3/4之间距离多少天,传统的想法是先判断年份是不是闰年,然后计算差了多少年,再算差了几个月,几天等等.这种方法虽然可以帮助我们理清其中的逻辑,但是写这样一段程序很容易出错,而且效率也不是很高.那么有没有好一点的办法呢?当然有! Unix和Linux系统中都是从1970年1月1号开始计算时间的,以秒为单位.虽然用秒作单位有点冗余,但是数学上却很简单.将日期转化为从基准日期之后过了多少秒,然后再执行操作,这样就消除了随

计算月份差工具类

满足的要求是Timestamp的类型,计算时间差,若满不足一个月按一个月计算.用户5月27订购的,到6月27日到期,即使是5月有31天. package file; import java.sql.Timestamp; public class timeUtil { public static void main(String[] args) { String time1="2000-02-29 01:12:12"; String time2="2000-03-30 12:1