pues gracias por todo.
al final lo he hecho asi:
Código:
CREATE PROCEDURE PRUEBA
RETURNS (
FECHA_MOVIMIENTO DATE,
CANTIDAD INTEGER,
ACUMULADO INTEGER)
AS
begin
acumulado=0;
for select fecha_movimiento, cantidad
from movimientos
into :fecha_movimiento, :cantidad do
begin
acumulado=acumulado+cantidad;
suspend;
end
end
el problema principal era que para cada fila nueva no es necesario volver a calcular el acumulado, ya que parte se ha calculado en la fila anterior.
podemos hacemos lo siguiente:
select *
from prueba
el procedimiento almacenado se comporta como si fuese una tabla!