sql 查询语句实现两列相减循环求差的算法

【问题】

id  name   nl    nl1     cha
1     a          5      0         5
2     a          4      2         7
3     a          1      8         0
1     b          2       0        2
2     b          2       1        3
现在要求出cha这一列的数值,也就是nl-nl1,但是第二列name等于a的这个差就是(5+4)-(2+0)以此类推,但是不知道name字段具体有几例,可以是三列也可以是两列或者5列 等不确定的,这个需要怎么实现 大神求救啊

【回答】

这个问题的逻辑不算难,SQL集合无序实现就比较绕,如果是JAVA+SQL的环境,可以用SPL来实现,各种数据库都可用,具体的脚本写法如下:

A
1$select * from tb order by name ,id
2=A1.run(cha=nl-nl1+if(name==name[-1],cha[-1]))

A1:sql取数,并按照name,id排序

A2:相同name下,当前行的cha值为nl-nl加前一行的cha

写好的脚本如何在应用程序中调用,可以参考Java 如何调用 SPL 脚本

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值