问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL中怎么写能得到这一行减去上一行的值,循环处理多行~多谢

发布网友 发布时间:2022-04-26 05:06

我来回答

3个回答

懂视网 时间:2022-05-03 21:25

  以下事例,使用游标循环表#temptable中数据,然后让当前行和上一行中的argument1 相加 存放到当前行的 argument2 中,比较简单。

--drop table #temptable
create table #temptable
(
 argument1 int,
 argument2 int,
 argument3 datetime
)

declare @rowcount int,@argument1 int,@argument2 nvarchar(50),@argument3 datetime
set @rowcount=1
set @argument1=1
set @argument2=0
set @argument3=GETDATE()

while(@rowcount<100)
begin
 insert into #temptable(argument1,argument2,argument3)
 values(@argument1,@argument2,@argument3)
 
 set @argument1=@argument1 + datepart(day,@argument3)
 set @argument3=@argument3-1 
 set @rowcount = @rowcount + 1
end

--select * from #temptable

declare @lastargument2 int
set @lastargument2=0
set @argument2=0
declare _cursor cursor for(select argument1 from #temptable)
open _cursor;
fetch next from _cursor into @argument2 
while @@fetch_status = 0
begin 
 update #temptable
 set argument2=@argument2+@lastargument2
 where current of _cursor
 
 set @lastargument2=@argument2 
 fetch next from _cursor into @argument2 
end
close _cursor
deallocate _cursor

--select * from #temptable

问一个问题:

第一句fetch next from _cursor into @argument2 这句为什么不能放在while循环的第一行,删除第二行呢?我记得自己当时在这里出错了,呵呵。

您可能感兴趣的文章:

  • sqlite循环批量插入数据采用批处理文件实现
  • SQLServer 循环批处理
  • 热心网友 时间:2022-05-03 18:33

    select a.value-b.value from (select row_number() over (order by 字段) xh,value from t1) a,
    (select row_number() over (order by 字段) xh,value from t2) b where a.xh=b.xh-1

    热心网友 时间:2022-05-03 19:51

    create table biao22 ( a int)

    insert biao22 select '10'

    insert biao22 select '9'

    insert biao22 select '20'

    insert biao22 select '25'

    insert biao22 select '18'

    insert biao22 select '7'

    select * from biao22

    create table #A ( id int identity(1,1), a int)

    insert into #a(a)
    select * from biao22

    declare @a int
    declare @b int

    select @a=min(id) from #a

    select @b=max(id) from #a

    while (@a<@b)

    begin

    select t1.a-t2.a from #a t1,#a t2 where t1.id=t2.id+1 and t1.id=@a

    set @a=@a+1

    end
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    你好。本人最近想入手个 本本 知道你是高手望给点高见 3K以内。 惠普(hp)hp431(qg643pa) 与联想(lenovo)g460al-ith(h)该买哪一... 惠普4核1G独立显卡2G-4G内存的笔记本电脑有哪些型号的比较好?价位是多... hp 431-qg597怎么样?惠普质量真很差吗?它的商务本怎么样 hp431 qg597无线上网卡插在那里? 惠普HP431(QG643PA)笔记本经常死机自动重启 陆金所 德众金融理财可靠吗? 平安为什么建陆金所 陆金所有什么风险吗 100分问题:请问汕头市区哪里有卖“节节风”的中草要。 遇到一纠结事情,就是要跟空调安插座,到底是选西门子的16A插座,还是选16A的TCL的插座,很纠结,很纠结。 小学田径队训练日记300字。 怎样去除手机屏幕保护膜 西门子16a三级插座是空调插座吗 手机贴保护膜前要怎么擦? ZXHN F660怎么连接无线路由器 西门子开关插座面板远景雅白16a空调插座怎么安装线 中兴f660 怎么*别人的网速 他没和我用一个路由器 我用的是f660的wifi和网络端口 社工证报考条件社会工作是指什么 春天的露地韭菜,应该什么时候割呢?为什么? 中兴光纤猫zxhn f660怎样才能无线上网 家用ZTE中兴ZXHN F660吉比特无源光纤接入设备 小学趣味田径训练教案 发现用原装充电器充电快,电池也更耐用? 中兴光猫zxhnf612 硬件版本号v6.0 软件版本号V6.0.0P11T1sd 这个是千 ... 一只纯种的泰迪犬要多少钱? 电瓶车快速充电站充电快还是原装充电快,我是爱玛的电瓶车。原装功率好像是48V2A那个快? 电信光猫zxhn f660使用说明书 小学生田径训练如何安排? 原装充电器18w,市场上买的充电器45w哪个充电更快? 如何在SQL 2005中实现循环每一行做一定的操作 韭菜什么时间停止收割 号码被列入黑名单怎么解决 起名的注意事项: 厦门高级社会工作师职业考试报考流程是怎么样的? SQL数据库函数如何对多结果进行循环处理 怎样处理手机保护膜上的污渍 起名时应注意些什么 sql 中怎样利用循环将一个表中的数据按行依次插入到另一个表中 韭菜到几月不能收割 SQL中循环语句 西门子开关插座在选购插座的时候要如何选择? 怎样干净地撕去手机屏幕保护膜 想做到懒人减肥,睡觉都瘦,怎样的睡眠习惯能燃脂呢? sql语句循环 有没有懂电懂开关插座的。我家买的西门子睿智系列怎么样?买贵了吗?两室一厅开关插座够用吗? sql语句的循环的使用(急) 手机贴膜手机表面可以涂酒精擦么? sqlserver中游标循环中只更新当前行的方法 西门子中央空调开关怎么用?