在SQL中找到帐户对帐单上的利率

时间:2019-01-19 16:15:56

标签: sql oracle

我的资产负债表,其中有日期,贷方,借方和余额列,我想找到全部利息。

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

寻找兴趣:

  1. 如果count_day = next_date-current_date那么
  2. (4 *(sum(count * bal)))/ 36500

我尝试获取每个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.

1 个答案:

答案 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|  
+----+--------+-------+