微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

复杂的 Oracle 累积覆盖问题

如何解决复杂的 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 举报,一经查实,本站将立刻删除。