2016-03-24 2 views
0

У меня проблема. Я просто хочу рассчитать баланс моего стола.Расчет баланса Oracle

мой выбор утверждение:

select date, ammount, ?? as Balance 
from table 
where accountnr = 123 
order by date 

Вывод должен выглядеть следующим образом:

Date    Ammount   Balance 
07/02/2016 -145.55 945.65 25/01/2016 349.45 1091.20 11/11/2015 340.25 741.75 30/09/2015 369.10 401.50 05/04/2015 32.40 32.40

Я пытался так долго, с различными способами без удачи.

+2

Я действительно надеюсь, что это школа/домашнее задание. (Если нет, скажите, пожалуйста, какой банк следует избегать.) – jarlh

+0

Не является ли последнее последним вхождение в таблицу? –

+0

@PresidentCamacho, правда, это моя ошибка. Я исправлю это. – user6109360

ответ

2

Вы можете сделать это в одной таблице сканирования (т.е. без каких-либо объединений или коррелируют подзапросов) с аналитическим запросом:

SELECT "date", 
     amount, 
     SUM(amount) OVER (ORDER BY "date") AS balance 
FROM your_table; 

Если есть несколько учетных записей в таблице, то:

SELECT account_number, 
     "date", 
     amount, 
     SUM(amount) OVER (PARTITION BY account_number ORDER BY "date") AS balance 
FROM your_table; 
+0

Ничего себе ... это что это !! Большое спасибо. – user6109360

Смежные вопросы