Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Menjalankan total berdasarkan catatan yang dikelompokkan dalam tabel

Apakah Anda benar-benar membutuhkan meja tambahan?

Anda bisa mendapatkan data yang Anda butuhkan dengan kueri sederhana, yang jelas dapat Anda buat sebagai tampilan jika Anda ingin menampilkannya seperti tabel.

Ini akan memberi Anda data yang Anda cari:

select 
    account, bookdate, amount, 
    sum(amount) over (partition by account order by bookdate) running_total
from t
/

Ini akan membuat tampilan untuk menampilkan data seperti tabel:

create or replace view t2
as
select 
    account, bookdate, amount, 
    sum(amount) over (partition by account order by bookdate) running_total 
from t
/

Jika Anda benar-benar membutuhkan tabel, apakah maksud Anda Anda membutuhkannya terus-menerus diperbarui? atau hanya satu? Jelas jika itu salah, Anda bisa "membuat tabel sebagai pilihan" menggunakan kueri di atas.

Data uji yang saya gunakan adalah:

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;

edit:

lupa menambahkan; Anda menentukan bahwa Anda ingin tabel dipesan - ini tidak benar-benar masuk akal, dan membuat saya berpikir bahwa Anda benar-benar bermaksud bahwa Anda menginginkan kueri/tampilan - pemesanan adalah hasil dari kueri yang Anda jalankan, bukan sesuatu yang bawaan tabel (mengabaikan Tabel Terorganisir Indeks dan sejenisnya).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Langkah demi Langkah R12.2.6 Instalasi EBS di Virtual Box

  2. Mengubah tipe data kolom, yang direferensikan oleh tabel lain

  3. Cara Memesan Berdasarkan Tanggal di PostgreSQL atau Oracle

  4. Oracle ODBC :SQLAllocHandle Driver pada SQL_HANDLE_ENV gagal

  5. Instalasi ROracle ::Tidak dapat memuat kesalahan objek bersama