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 脚本

 

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值