FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
acumulados
hola a todos.
tengo la siguiente consulta: Código:
select cantidad, (select sum(cantidad) from tabla where cantidad<=t.cantidad) as acumulado from tabla t order by cantidad Código:
cantidad - acumulado --------------------------- 1 - 1 2 - 3 4 - 7 6 - 13 9 - 21 lo que quiero es hacer la misma consulta pero mas sencilla. me da la sensacion de que la consulta anterior es demasiado costosa. alguna idea?
__________________
“Plantad la semilla de la avaricia en la infértil tierra de la estupidez y obtendreis la bella flor de la mierda” (Confucio) |
#2
|
||||
|
||||
Sin utilizar subquerys la consulta sería la siguiente:
Código:
SELECT a.CANTIDAD, Sum(b.CANTIDAD) AS Suma FROM TABLA AS a, TABLA AS b WHERE b.CANTIDAD <= a.CANTIDAD GROUP BY a.CANTIDAD; Código:
SELECT a.CANTIDAD, Sum(b.CANTIDAD) AS Suma FROM TABLA AS a, TABLA AS b WHERE b.CANTIDAD <= a.CANTIDAD GROUP BY a.CANTIDAD ORDER BY a.cantidad; |
#3
|
||||
|
||||
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 podemos hacemos lo siguiente: select * from prueba el procedimiento almacenado se comporta como si fuese una tabla!
__________________
“Plantad la semilla de la avaricia en la infértil tierra de la estupidez y obtendreis la bella flor de la mierda” (Confucio) |
|
|
|