select a.用户,a.起始时间,b.终止时间,a.读数1,b.读数2
,(b.读数2-a.读数1) as 用量,(b.读数2-a.读数1)*c.单价 as 费用
from
(
select a.用户,a.类型编号,a.时间 as 起始时间,a.读数 as 读数1 from 表1 a
inner join (select 用户,类型编号,min(时间) as 时间 from 表1 group by 用户,类型编号) a1
on a.用户=a1.用户 and a.类型编号=a1.类型编号 and a.时间=a1.时间
) a
inner join
(
select a.用户,a.类型编号,a.时间 as 终止时间,a.读数 as 读数2 from 表1 a
inner join (select 用户,类型编号,max(时间) as 时间 from 表1 group by 用户,类型编号) a1
on a.用户=a1.用户 and a.类型编号=a1.类型编号 and a.时间=a1.时间
) b
on a.用户=b.用户 and a.类型编号=b.类型编号
inner join 表2 c on a.类型编号=c.类型编号