No veo la manera de hacerlo con un trigger, pero si con un stored procedure:
Código SQL
[-]
set term ^ ;
create procedure EstadoCuenta (
cliente integer
)
returns (
ventas double precision,
pagos double precision,
devoluciones double precision,
saldo double precision
)
AS
begin
saldo = 0;
for select ventas, pagos, devoluciones, saldo
from tabla
where cliente = :cliente
order by fecha do
begin
saldo = saldo + ventas - pagos - devoluciones;
suspend;
end
end
^
set term ; ^
commit work;
//uso:
select *
from EstadoCuenta(1);
Es probable que tenga errores de sintaxis, pues lo he hecho aquí mismo, pero la idea es esa.
Hasta luego.