关于网友提出的“ sql更新语句,使当前记录值等于接着三条记录的值”问题疑问,本网通过在网上对“ sql更新语句,使当前记录值等于接着三条记录的值”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: sql更新语句,使当前记录值等于接着三条记录的值
描述: 表a有字段b,c(都是数值)
如何使当前记录b的值=接着5条记录的c的和呢?
c b
1
2
3
4
5
执行更新语句后使b的值是接着三条记录的值呢?
c b b(包含本身记录)
1 (2+3+4) =9 1+2+3=6
2 3+4+5 =12 2+3+4=9
3 4+5+6 =15 3+4+5=12
4 5 =5 4+5= 9
5 =0 5 =5
解决方案1: 建立一个表名为B的表
1.执行更新语句后使b的值是接着三条记录的值(ORACLE)
select C,DECODE((select sum(C) from (select ROWNUM A,C from B) A where (A.A > B.A) and (A.A < B.A + 4) ),NULL,0,(select sum(C) from (select ROWNUM A,C from B) A where (A.A > B.A) and (A.A < B.A + 4) )) B from (select ROWNUM A,C from B) B
2.包含本身记录(ORACLE)
select C,DECODE((select sum(C) from (select ROWNUM A,C from B) A where (A.A >= B.A) and (A.A < B.A + 3) ),NULL,0,(select sum(C) from (select ROWNUM A,C from B) A where (A.A >= B.A) and (A.A < B.A + 3) )) B from (select ROWNUM A,C from B) B
以上介绍了“ sql更新语句,使当前记录值等于接着三条记录的值”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3012026.html