基于SQLHANA中上一行条件的累计总和和剩余余额

问题描述

我需要根据储备量交易量得出以下列(黄色标记)。记录基于交易日期交易时间进行排序,并且必须为每种材料

重复计算

enter image description here

  1. 以前的准备金余额: •如果是第一笔交易,则通过将数字设置为等于“储备数量”来初始化 •其他结转上次交易的剩余准备金余额

  2. 已分配数量 •如果交易数量> 0,则使用先前储备金余额或交易数量的最小值
    •如果交易数量小于0,则 如果是第一笔交易,则使用0 其他使用最大交易数量或-1 *累计数量通过 以前的交易

  3. 已分配的累计数量 =已分配的数量的运行总计

  4. 剩余余额 =以前的准备金余额-分配的数量

这需要使用HANA sql来实现(但我相信其他数据库中的解决方案也可能适用于HANA DB,因此也可以接受任何其他数据库解决方案)。目前,我可以通过在For循环中使用Cursor并将先前的值存储在变量中来实现它,但是它存在性能问题,想知道是否有更好的解决方

Sample data

代码段:

select 
      service,time,country,city,country_code,issue,latitude,longitude
   from 
      messages
   where 
          service = 'myservice'
      and time > DATE_SUB( Now(),INTERVAL 24 HOUR )
   order by 
      time desc;

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)