select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
order by id
Violon : http://sqlfiddle.com/#!15/97dc5/2/0
Envisagez de changer les noms de vos colonnes "In" / "Out" afin de ne pas avoir à les mettre entre guillemets. (Ce sont des mots réservés)
Si vous vouliez un seul client (customer_id =2) :
select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
where customer_id = 2
order by id
Si votre requête devait couvrir plusieurs clients et que vous vouliez un solde courant qui REDÉMARRAIT avec chaque client, vous pourriez utiliser :
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