现有如下记录: 序号 表号 购电次数 剩余电量 总购电量 总用电量 
  1  22      1        33      2345    2312 
  2  22      2        23      3453    3430 
  3  22      3        243     3998    3755  
  4  22      4        36      4896    4850 
  4  22      5        76      5476    5400 可否通过SQL语句 根据提供的购电次数信息  直接计算出某两次购电之间的用电量,例如第4次购电和第3次购电之间 用电量为 4850-3755 =1095度。

解决方案 »

  1.   

    select sum([总用电量] * (case [购电次数]
                                          when 3 then -1
                                      when 4 then 1
                                      end))
     from table1
    where [购电次数]=3
       or [购电次数]=4
    如果是 Access 将 Case 换成 IIF
      

  2.   

    SELECT distinct abs((SELECT A.总用电量 FROM TB2 as A WHERE (((A.购电次数)=3)))-(SELECT B.总用电量 FROM TB2 as B WHERE (((B.购电次数)=4)))) AS 结果
    FROM TB2;
      

  3.   


    --全部数据
    SELECT a.*,(a.总用电量 - b.总用电量 ) as 用电量 
    from tb a left join tb b
    on a.购电次数=b.购电次数+1--第4次购电:
    SELECT a.*,(a.总用电量 - b.总用电量 ) as 用电量 
    from tb a left join tb b
    on a.购电次数=b.购电次数+1
    where  a.购电次数=4
      

  4.   

    好象要改下:
    --全部数据
    SELECT a.*,(a.总用电量 - b.总用电量 ) as 用电量 
    from tb a left join tb b
    on a.购电次数=b.购电次数+1 and a.表号=b.表号--第4次购电:
    SELECT a.*,(a.总用电量 - b.总用电量 ) as 用电量 
    from tb a left join tb b
    on a.购电次数=b.购电次数+1 and a.表号=b.表号
    where  a.购电次数=4 and a.表号=22
      

  5.   

    select B.总用电量-A.总用电量 from 
    (select * from 电量表 where 购电次数=3) A,
    (select * from 电量表 where 购电次数=4) B
    where A.表号=B.表号