复杂的 Oracle 累积覆盖问题

问题描述

我有以下示例数据集 它代表金融交易,最后 3 个字段是在查询中计算的,我想找到总贷方何时覆盖总借方(BALANCE_COVERAGE) 我怎样才能找到它? 答案将是第一个将余额覆盖为负(最后一列)的借方交易,如何计算最后一列?

创建表 IncomeTest (SubjectId int,Date_Value date,debit number,credit number);

提交; DATE TRX_AMT TRX_TYPE TOTAL_CREDIT TOTAL_DEBIT BALANCE_COVERAGE

2017-06-29 4104 DEBIT 8108 4104 4104 ---> 这代表总credit-trx_amt
2017-10-26 4104 信用 8108 4104 4104 2017-10-26 4104 DEBIT 8108 8208 0 ---> 这代表剩余的总信用-trx_amt
2017-10-26 4004 信用 8108 8208 0 2017-10-26 5028 DEBIT 8108 13236 -5028 这笔交易使运行余额减去,因为没有信贷覆盖或仅部分覆盖 2017-11-26 4926 借记 8108 18162 -9954
2018-01-28 70 借记 8108 18232 -10024 2019-01-27 70 借记 8108 18302 -10094 2020-01-26 70 借记 8108 18372 -10164

创建表test_data
(日期_日期, trx_amt 编号(10),trx_type varchar2(10),TOTAL_CREDIT 号码(10),TOTAL_DEBIT 号码(10),BALANCE_COVERAGE 数量(10)); 插入 test_Data (date_,trx_amt,trx_type,TOTAL_CREDIT,TOTAL_DEBIT,BALANCE_COVERAGE) 值 (to_Date('26/09/2017','dd/mm/yyyy'),4104,'DEBIT',8108,4104); 插入 test_Data (date_,BALANCE_COVERAGE) 值 (to_Date('26/10/2017','CREDIT',0); 插入 test_Data (date_,0);

插入 test_Data (date_,5028,-5028);

插入 test_Data (date_,BALANCE_COVERAGE) 值 (to_Date('26/11/2017',4926,-9954);

插入 test_Data (date_,BALANCE_COVERAGE) 值 (to_Date('28/01/2018',70,-10024);

插入 test_Data (date_,BALANCE_COVERAGE) 值 (to_Date('27/01/2019',-10094);

插入 test_Data (date_,BALANCE_COVERAGE) 值 (to_Date('27/01/2020',-10164);

解决方法

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

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

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