Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/05/2013, 07:35
Avatar de cchaparro
cchaparro
 
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 16 años
Puntos: 2
Respuesta: Sentencia SQL condicional

Hola quimfv.

Algo así como indicaste ya lo había intentado, aunque con tu claro ejemplo práctico puedo verificar mejor; intenté esto:

SELECT id_pago FROM pagos GROUP BY id_pago HAVING max(fecha_pago)<'2013-05-27'

... pero devuelve como válidos pagos con fecha máxima posterior a la indicada para un mismo cliente. La estructura es la siguiente:
id_pago
id_cliente
fecha_pago
cantidad
estado_pago

Pero supongo que por ese camino va la posible solución. Seguiré haciendo pruebas, aunque ojalá alguien sepa cómo hacer para que funcione.

------------------------------------------------------------------------------------------------------------
SOLUCIONADO:
SELECT * FROM pagos WHERE pagos.estado_pago = 'PENDIENTE' AND id_cliente IN (SELECT id_cliente FROM pagos GROUP BY id_cliente HAVING MAX(fecha_pago)<'2013-05-27')

No había hecho la relación con el cliente, era lógico que devolviera los registros "mal", no estaba aplicando bien la consulta; abrí más la mente a mirar tu segunda consulta y tan obvio como que acabé de madrugar y estaba con los ojos pegados. Sorry. Estuvo excelente tu ayuda, haré unas pruebas más durante esta semana pero gracias por ahora que estoy algo más tranquilo.

Gracias de todo corazón quimfv.

--------------------------------------------------------------------------------------------------------------
Pruebas realizadas, por ahora quedó excelente la consulta; hubo problemas de lentitud, la consulta se demoraba casi 20 segundos para pocos registros; solucionado entre 2 a 3 segundos indexando los campos utilizados en la consulta, esperando que la BD no crezca mucho en tamaño.

Gracias una vez más quimfv. Dios lo bendiga y les bendiga a todos.

Última edición por cchaparro; 27/05/2013 a las 11:06