select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
order by id
Biola: http://sqlfiddle.com/#!15/97dc5/2/0
Pertimbangkan untuk mengubah nama kolom Anda "Masuk" / "Keluar" sehingga Anda tidak perlu memasukkannya ke dalam tanda kutip. (Itu adalah kata-kata yang dicadangkan)
Jika Anda hanya menginginkan satu pelanggan (customer_id =2):
select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
where customer_id = 2
order by id
Jika kueri Anda menjangkau beberapa pelanggan dan Anda menginginkan saldo berjalan yang DIMULAI KEMBALI dengan setiap pelanggan, Anda dapat menggunakan:
select t.*, sum("In"-"Out") over( partition by customer_id
order by customer_id, id ) as balance_by_cust
from tbl t
order by customer_id, id