Как рассчитать итоговый баланс для каждого trans_date в запросе оракула? - PullRequest
0 голосов
/ 23 сентября 2018
  1. Здесь я хочу, чтобы итоговый баланс для каждого trans_date был таким, чтобы итоговый баланс за last_trans_date был бы моим итоговым балансом за месяц.
  2. пример таблицы:

TRANS_DAT     CREDIT      DEBIT
--------- ---------- ----------
24-SEP-18       2500        400
24-SEP-18                   200
24-SEP-18        500
30-SEP-18        400       1200
30-SEP-18        400

Я использовал следующий запрос:

SELECT TRANS_DATE, SUM(NVL(CREDIT,0)-NVL(DEBIT,0)) BALANCE  
  FROM BANK_TRANS GROUP BY TRANS_DATE;

output:

TRANS_DATE    BALANCE
---------  ----------
24-SEP-18       2400
30-SEP-18       -400

однако итоговое сальдо для 30-SEP-18 должно составлять 2000.00 как правильное окончание месяцаитоговое сальдо, но я получил итоговое сальдо только за этот день.

Пожалуйста, помогите мне с тем же.

1 Ответ

0 голосов
/ 24 сентября 2018

Если вы группируете по каждой дате, вы получите одну строку для каждой даты.Если вы используете функцию trunc() , вы можете получить строки и значения за месяц:

SELECT trunc(TRANS_DATE,'MONTH'), SUM(NVL(CREDIT,0)-NVL(DEBIT,0)) BALANCE 
FROM BANK_TRANS 
GROUP BY trunc(TRANS_DATE,'MONTH');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...