我的资产负债表,其中有日期,贷方,借方和余额列,我想找到全部利息。
TRX_DATE CREDIT DEBIT BAL
-------- ---------- ---------- ----------
01-11-18 0
05-11-18 7500 7500
08-11-18 2500 5000
15-11-18 10000 15000
25-11-18 9000 6000
30-11-18 1000 5000
05-12-18 7100 12100
10-12-18 2100 10000
20-12-18 20000 30000
25-12-18 15000 15000
寻找兴趣:
我尝试获取每个trx
感兴趣的行,但没有得到行的总数或总和。并且在尝试对查询错误进行sum()时显示ORA-30483:此处不允许使用窗口函数
select ((4*(bal*(trx_date-((lag(trx_date) over (order by trx_date))))))/36500)as interest
from int i;
interest
------------
78.
答案 0 :(得分:0)
这是我使用LEAD的解决方案
SELECT ROUND(4.0 * SUM(bal * days / 36500), 2) as Interest
FROM (
SELECT bal, NVL(LEAD(trx_date) OVER (ORDER BY trx_date) - trx_date, 0) days
FROM transaction)
这给样本数据带来了62.79的应计利息。以下是个人利息金额
+----+--------+-------+
|DAYS| BAL| INT|
+----+--------+-------+
| 4| 0| 0|
| 3| 7500| 2.47|
| 7| 5000| 3.84|
| 10| 15000| 16.44|
| 5| 6000| 3.29|
| 5| 5000| 2.74|
| 5| 12100| 6.63|
| 10| 10000| 10.96|
| 5| 30000| 16.44|
| 0| 15000| 0|
+----+--------+-------+