Вам действительно нужен дополнительный стол?
Вы можете получить необходимые данные с помощью простого запроса, который, очевидно, можно создать в виде представления, если хотите, чтобы он отображался в виде таблицы.
Это даст вам данные, которые вы ищете:
select
account, bookdate, amount,
sum(amount) over (partition by account order by bookdate) running_total
from t
/
Это создаст представление для отображения данных, как если бы они были таблицей:
create or replace view t2
as
select
account, bookdate, amount,
sum(amount) over (partition by account order by bookdate) running_total
from t
/
Если вам действительно нужна таблица, вы имеете в виду, что она нужна вам постоянно обновляться? или только один раз? Очевидно, что если он один, вы можете просто «создать таблицу как выбор», используя приведенный выше запрос.
Данные испытаний, которые я использовал:
create table t(account number, bookdate date, amount number);
insert into t(account, bookdate, amount) values (1, to_date('20080101', 'yyyymmdd'), 100);
insert into t(account, bookdate, amount) values (1, to_date('20080102', 'yyyymmdd'), 101);
insert into t(account, bookdate, amount) values (1, to_date('20080103', 'yyyymmdd'), -200);
insert into t(account, bookdate, amount) values (2, to_date('20080102', 'yyyymmdd'), 200);
commit;
редактирование:
забыл добавить; вы указали, что хотите, чтобы таблица была упорядочена - это на самом деле не имеет смысла, и заставляет меня думать, что вы действительно имеете в виду, что вы хотели запрос / представление - упорядочение является результатом выполняемого вами запроса, а не чем-то, что является неотъемлемым таблица (игнорируя индексные организованные таблицы и т. п.).