Trong SQL Server 2005, tôi sẽ thực hiện việc này bằng cách sử dụng truy vấn con tương quan:
select dummy_id, date_registered, item_id, quantity, price,
(select sum(quantity)
from t t2
where t2.item_id = t.item_id and
t2.date_registered <= t.date_registered
) as cumulative
from table t;
Nếu bạn thực sự muốn thêm cột này vào một bảng, bạn cần phải thay đổi bảng để thêm cột và sau đó thực hiện cập nhật. Nếu bảng có chèn và cập nhật, bạn sẽ cần thêm trình kích hoạt để luôn cập nhật. Lấy nó thông qua một truy vấn chắc chắn dễ dàng hơn.
Trong SQL Server 2012, bạn có thể thực hiện việc này bằng cú pháp:
select dummy_id, date_registered, item_id, quantity, price,
sum(quantity) over (partition by item_id order by date_registered) as cumulative
from table t;