Opravdu potřebujete další stůl?
Potřebná data můžete získat jednoduchým dotazem, který můžete samozřejmě vytvořit jako pohled, pokud chcete, aby vypadal jako tabulka.
Tím získáte data, která hledáte:
select
account, bookdate, amount,
sum(amount) over (partition by account order by bookdate) running_total
from t
/
Tím se vytvoří pohled, který vám zobrazí data, jako by to byla tabulka:
create or replace view t2
as
select
account, bookdate, amount,
sum(amount) over (partition by account order by bookdate) running_total
from t
/
Pokud opravdu potřebujete tabulku, myslíte tím, že ji potřebujete neustále aktualizovat? nebo jen jednorázovka? Je zřejmé, že pokud je to jednorázové, můžete jednoduše "vytvořit tabulku jako výběr" pomocí výše uvedeného dotazu.
Testovací data, která jsem použil, jsou:
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;
upravit:
zapomněl přidat; uvedli jste, že chcete, aby byla tabulka seřazena - to ve skutečnosti nedává smysl a myslím si, že to opravdu myslíte tím, že jste dotaz/zobrazení chtěli - řazení je výsledkem dotazu, který spustíte, nikoli něčím, co je inherentní tabulky (ignorujte Index Organized Tables a podobně).