当前位置:编程学习 > VB >>

送分100分:用SQL语句直接得出两个记录之间某字段的差值。

现有如下记录: 

序号 表号 购电次数 剩余电量 总购电量 总用电量 
  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度。

--------------------编程问答--------------------
select sum([总用电量] * (case [购电次数]
                                      when 3 then -1
                                  when 4 then 1
                                  end))
 from table1
where [购电次数]=3
   or [购电次数]=4

如果是 Access 将 Case 换成 IIF --------------------编程问答-------------------- SELECT distinct abs((SELECT A.总用电量 FROM TB2 as A WHERE (((A.购电次数)=3)))-(SELECT B.总用电量 FROM TB2 as B WHERE (((B.购电次数)=4)))) AS 结果
FROM TB2;
--------------------编程问答-------------------- 学习下!!!路过 --------------------编程问答--------------------

--全部数据
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
--------------------编程问答-------------------- 其实这类数据表在设计时应该加上冗余字段 [上次总用电量] 以方便统计。 --------------------编程问答-------------------- 好象要改下:


--全部数据
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



--------------------编程问答--------------------
select B.总用电量-A.总用电量 from 
(select * from 电量表 where 购电次数=3) A,
(select * from 电量表 where 购电次数=4) B
where A.表号=B.表号
--------------------编程问答--------------------
引用 7 楼 king06 的回复:
SQL codeselect B.总用电量-A.总用电量from 
(select*from 电量表where 购电次数=3) A,
(select*from 电量表where 购电次数=4) Bwhere A.表号=B.表号

up --------------------编程问答-------------------- --------------------编程问答-------------------- 上面几位的回答应该解决楼主的问题了吧,顺便提个建议,数据库的命名还是用字母比较好
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,