Bạn có thực sự cần bàn phụ không?
Bạn có thể lấy dữ liệu mình cần bằng một truy vấn đơn giản, rõ ràng bạn có thể tạo dưới dạng một dạng xem nếu bạn muốn nó xuất hiện như một bảng.
Điều này sẽ cung cấp cho bạn dữ liệu bạn đang tìm kiếm:
select
account, bookdate, amount,
sum(amount) over (partition by account order by bookdate) running_total
from t
/
Thao tác này sẽ tạo một dạng xem để hiển thị cho bạn dữ liệu như thể nó là một bảng:
create or replace view t2
as
select
account, bookdate, amount,
sum(amount) over (partition by account order by bookdate) running_total
from t
/
Nếu bạn thực sự cần bảng, bạn có nghĩa là bạn cần nó được cập nhật liên tục? hay chỉ là một lần tắt? Rõ ràng nếu đó là một trong số đó, bạn chỉ có thể "tạo bảng dưới dạng lựa chọn" bằng cách sử dụng truy vấn trên.
Dữ liệu kiểm tra tôi đã sử dụng là:
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;
chỉnh sửa:
quên thêm; bạn đã chỉ định rằng bạn muốn bảng được sắp xếp thứ tự - điều này không thực sự có ý nghĩa và khiến tôi nghĩ rằng bạn thực sự muốn nói rằng bạn muốn truy vấn / chế độ xem - thứ tự là kết quả của truy vấn bạn thực hiện, không phải thứ gì đó kế thừa trong bảng (bỏ qua Bảng có tổ chức lập chỉ mục và những thứ tương tự).