如何用SQL语句实现:查询某字段的下一行记录值减上一行记录值的差?

xindijingying 2005-01-21 11:31:19
在Oracle8i,如何用SQL语句实现:查询某字段的下一行记录值减上一行记录值的差?
如有表如下:
单位编号 收入
````````````````````````````````
001 5000
002 6000
003 5600
...

想得到如下:
单位编号 差
````````````````````````````````
001 5000 //头行记录为原值
002 1000 //6000-5000=1000
003 -400 //5600-6000=-400
...

用PL SQL、游标逐行处理可以,现在想用SQL语句实现,该怎么办?
求高手不吝赐教~!谢谢~
...全文
1261 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xindijingying 2005-01-24
  • 打赏
  • 举报
回复
ORARichard(没钱的日子......) ( ) 信誉:100 2005-1-21 12:16:50 得分: 0



--try;

select a.单位编号,a.收入-b.收入 差 from
(
select rownum no,单位编号,收入 from tb
) a,
(
select rownum no,单位编号,收入 from (select '000' 单位编号,0 收入 from dual union all
select 单位编号,收入 from tb)
) b
where a.no=b.no;



---------------------------------
在ORACLE的实现,谢谢大家~!
navyfish 2005-01-21
  • 打赏
  • 举报
回复
用游标啊。
多定义一个参数,记下当前的值,下一行的时候再用当前值减刚才的值啊。
代码方面的参考联机帮助或者看SQL SERVER 技术内幕。应该不会难。
有什么具体的问题再问。
xindijingying 2005-01-21
  • 打赏
  • 举报
回复
哦,楼上的高手,如果是在SQL SERVER2000中呢?谢谢~!
wozhuchuanwei 2005-01-21
  • 打赏
  • 举报
回复
Oracle8i不熟悉
hellolongbin 2005-01-21
  • 打赏
  • 举报
回复
设一个自增字段,根据这个字段做会简单些
梅青松 2005-01-21
  • 打赏
  • 举报
回复
create table t(
单位编号 char(10),
收入 decimal null
)

insert into t
select '001', 5000
union
select '002', 6000
union
select '003', 5600

select 单位编号,
差 = 收入 - IsNull((select top 1 收入 from t
where cast(单位编号 as int) < cast(a.单位编号 as int) order by cast(单位编号 as int) desc), 0)
from t a

测试结果:
001 5000
002 1000
003 -400
lensarcjh 2005-01-21
  • 打赏
  • 举报
回复
表tab的数据

class, price
001 , 5000
002 , 6000
003 , 5600
...


在SQL server 2000中可用下面的方法实现:



select a.class,a.price-isnull(b.price,0) as price from
(select *,class+0 as class1 from tab ) a left join
(select *, class+1 as class1 from tab where class<>( select max(class) from tab)) b
on a.class1=b.class1


得到结果:

class, price
001 , 5000
002 , 1000
003 , -400
...


oracle中我就不清楚了.................:)
skyno1 2005-01-21
  • 打赏
  • 举报
回复
使用SELECT递归语句撒
xindijingying 2005-01-21
  • 打赏
  • 举报
回复
噢,用游标的话我也是晓得的;
难道不能用SQL语句直接写出?

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧