Il tuo problema è che pochi di "noi" conoscono firebird, ( io meno degli altri )
ma se si tratta di un DB allora devi usare il linguaggio SQL che è sempre più o meno uguale,
( confesso che non capisco assolutamente quei tentativi di soluzione che abbozzi sopra )
Prova con una di queste 2 possibilità scritte in un SQL abbastanza standard,
vediamo se firebird ti restituisce almeno qualcosa,
se si allora poi andremo a risolvere il problema dell'indice temporale che ti accennavo sopra
codice:
SELECT
T1.entrata,
T1.uscita,
(SELECT Sum(T2.entrata - T2.uscita) FROM Tabella AS T2 WHERE T2.entrata>=T1.entrata) AS Prog
FROM
Tabella AS T1
ORDER BY
T1.entrata DESC
;
codice:
SELECT
T1.entrata,
T1.uscita,
Sum(T2.entrata-T2.uscita) AS Prog
FROM
Tabella AS T1
INNER JOIN
Tabella AS T2
ON
T1.entrata <= T2.entrata
GROUP BY
T1.entrata,
T1.uscita
ORDER BY
T1.entrata DESC
;