PDA

Ver la Versión Completa : ¿cómo hacer una sumatoria acumulativa?


ContraVeneno
14-07-2006, 19:04:13
Supongamos que con la instrucción:
select Importe from articulos
obtengo:

Importe
3.0
2.5
5.0
3.5



¿que tendría que hacer para conseguir una sumatoria acumulativa?

Importe SumAcum
3.0 3.0
2.5 5.5
5.0 10.5
3.5 13.5


¿alguien tiene alguna idea de lo que debo consultar o investigar para obtener ese resultado?

lpmlpm
14-07-2006, 20:55:48
En firebird....


select a.Importe,
(select sum(a2.Importe) from articulos a2 where a2.orden <= a.orden)
from articulos a
order by a.orden


Solo tienes que considerar el hecho de que debe haber un criterio para saber en que orden se iran sumando las acumulaciones... en este caso introduje un campo de orden... de otro modo se sumarian basados en el mismo importe y habría que presentar la consulta con los importes ordenados...

__hector
14-07-2006, 20:56:12
Quizas usando una tabla temporal y recorriendo/insertando los valores desde un cursor, de la forma:

declare m_cursor cursor for sentenciaselect

abrir cursor
recorrer cursor mientras haya records
@sumatoria += valorcampo
insertar en la #tablatemporal
finrecorrer
cerrar y destruir cursor

select from #tablatemporal

Mas ayuda sobre cursores en los Books Online