Найти процентную ставку по выписке по счету в sql - PullRequest
0 голосов
/ 19 января 2019

у меня есть таблица выписок, и в ней есть столбец с датой, кредитом, дебетом и балансом, и я хочу найти общий процент.

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 голосов
/ 19 января 2019

Вот мое решение с использованием 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|  
+----+--------+-------+  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...