Ver Mensaje Individual
  #6  
Antiguo 20-05-2012
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Reputación: 22
gatosoft Va camino a la fama
Ok LuNaTk,

El confundido era yo, no leí bien tu descripción e interpreté diferente las cosas... espero esta vez si haberlo entendido como es...

Yo probé la siguiente consulta y me funcionó OK en PosgreSQL

Código SQL [-]
select * 
from (
select *, (select sum(BB.pag_monto) from pago BB where BB.pag_id <= AA.pag_id and BB.pag_status='PENDIENTE') as totalx
from pago AA
  where AA.pag_status='PENDIENTE'
) as subquery
where totalx <= 250


Lo que hace recuperar los movimientos mas antiguos que sumen los 250 que buscas o que se aproximen (por debajo a este monto)...

entonces teiendo estos datos:

Código:
pag_id, pag_monto, pag_status
1;10;"PENDIENTE"
2;8;"PENDIENTE"
3;3;"PENDIENTE"
4;12;"OK"
5;60;"PENDIENTE"
6;20;"PENDIENTE"
7;13;"PENDIENTE"
8;8;"OK"
9;9;"PENDIENTE"
10;15;"PENDIENTE"
11;5;"OK"
12;50;"PENDIENTE"
y enviando la consulta para un valor de 81 me retornaría:

Código:
pag_id, pag_monto, pag_status
1;10;"PENDIENTE"
2;8;"PENDIENTE"
3;3;"PENDIENTE"
5;60;"PENDIENTE"

Ahora si quisieras encontrar el número exacto, escogiendo y descartando filas interedias... ahí si te tocaría hacer un procedimiento almacenado o funcion que te ayude....


me refiero a un ejemplo como este:

Tengo los siguientes numeros y busco aquellos que me sumen 94...

60
50
20 OK
15 OK
13 OK
12 OK
10 OK

9
8 OK
8 OK
5 OK
3 OK


Para llegar a este resultado, tuve que ordenarlos (de menor a mayor o al contrario de igual) y luego aplicar un algoritmo que toma y descarta numeros... bueno eso creo, no se si este equivocado

Última edición por gatosoft fecha: 20-05-2012 a las 19:37:22.
Responder Con Cita