Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Multiples resultados para una consulta

Estas en el tema de Multiples resultados para una consulta en el foro de Mysql en Foros del Web. Antes que nada sepan disculpar si algo hago mal en el foro.. pero es mi primer consulta (digamos.. bien novato). Va mi consulta: Tengo dos ...
  #1 (permalink)  
Antiguo 31/03/2010, 14:31
 
Fecha de Ingreso: marzo-2010
Ubicación: Brandsen
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Multiples resultados para una consulta

Antes que nada sepan disculpar si algo hago mal en el foro.. pero es mi primer consulta (digamos.. bien novato). Va mi consulta:
Tengo dos tablas, Clientes y vencimientos. Cada vencimiento tiene una fecha y un id de cliente. Lo que necesito es obtener en una sola consulta la suma de los vencimientos anteriores a hoy, la suma de los vencimientos de hoy y la suma de los vencimientos posteriores a hoy.

Desde ya les agradezco mucho las respuestas
  #2 (permalink)  
Antiguo 31/03/2010, 14:47
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Multiples resultados para una consulta

Bueno yo te recomendaria tener una columna en clientes para que tengas algo llamado saldo y no tengas que consultar todas las otras tablas para sumarlas sino que cada vez que agregues una puedas mostrarle el saldo sin entrar en la tabla de vencimientos a menos que deba ser consultada como una tabla detalle. ejemplo:

(clientes)
ID_cli
nombre
cedula
saldo

(vencimientos)
ID_vencimiento
ID_cliente
fecha
monto


Cada vez que agregas un registro lo sumas a el ID del cliente y tienes vencimientos solo para mantener el historial....
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #3 (permalink)  
Antiguo 31/03/2010, 15:00
 
Fecha de Ingreso: marzo-2010
Ubicación: Brandsen
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Multiples resultados para una consulta

Ante todo, muchas gracias por responder. Voy a tratar de ser mas explicito. Si bien tu idea no es mala, el problema es que esa tabla de vencimientos es variable dia a dia, dado que se trata de un sistema de cobranzas y cada vez que se cancela un vencimiento dicha tabla se modifica, al igual que cuando se generan nuevos vencimientos. Estaba tratando de evitar un proceso intermedio de actualizacion del saldo en la tabla clientes, en parte porque no encontre una forma segura de automatizarlo y en parte porque no solo necesito el dia actual, sino que dia a dia necesito informar los vencimientos de la semana.
En resumen, necesitaria estos resultados:

codigo nombre Total_vencido Tot_lunes Tot_martes....Tot_viernes Tot_post_vienres

Es decir necesito actualizar dinamicamente estos valores al menos una vez al dia


nuevamente.. mil gracias por responder

PD: ya tengo funcionando el programa realizando una consulta por cada fecha a evaluar. Mi problema es que al ser muchos registros la velocidad de respuesta es muy lenta, a ademas, php tarda mucho mas en generar la pagina; si a eso le sumo que cada vez que se refresca la pagina vuelve a recorrer la base de datos, los tiempos de respuesta son demasiado lentos. La idea es resumir todo en una sola consulta para optimizar los tiempos de respuesta.

Última edición por DanteAntonio; 31/03/2010 a las 15:40
  #4 (permalink)  
Antiguo 31/03/2010, 16:18
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Multiples resultados para una consulta

crea una talla llamada recientes que contenta lunes martes miercoles ... viernes y salvas los saldos ahi adentro. y eso lo relacionas con el cliente 1:1 y tienes la tabla de vencimientos como un historial asi no afectas ninguna tabla...
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #5 (permalink)  
Antiguo 31/03/2010, 17:55
 
Fecha de Ingreso: marzo-2010
Ubicación: Brandsen
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Multiples resultados para una consulta

Ya encontre la solucion!!!

Por si alguno tiene el mismo problema y le interesa, dejo el select que utilice como referencia.


SELECT clientes.codigo, clientes.nombre, sum( if( vencimientos.fvto <= '2010-3-28', vencimientos.importe, 0 ) ) pvencido, sum( if( vencimientos.fvto = '2010-03-29', vencimientos.importe, 0 ) ) plunes, sum( if( vencimientos.fvto = '2010-3-30', vencimientos.importe, 0 ) ) pmartes, sum( if( vencimientos.fvto = '2010-3-31', vencimientos.importe, 0 ) ) pmiercoles, sum( if( vencimientos.fvto = '2010-4-1', vencimientos.importe, 0 ) ) pjueves, sum( if( vencimientos.fvto = '2010-4-2', vencimientos.importe, 0 ) ) pvienres, sum( if( vencimientos.fvto > '2010-4-2', vencimientos.importe, 0 ) ) potros
FROM clientes
INNER JOIN vencimientos ON vencimientos.codigo = clientes.codigo
WHERE clientes.sumasaldo =0
GROUP BY clientes.codigo
ORDER BY clientes.nombre
LIMIT 0 , 30



muchas gracias a todos

Etiquetas: multiples, resultados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:55.