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

Contar dias

Estas en el tema de Contar dias en el foro de Mysql en Foros del Web. Hola como estan ??? Bueno necesito saber cuales son los clientes que tienen cuenta y que la ultima entrega que hicieron sea mayor de una ...
  #1 (permalink)  
Antiguo 30/05/2009, 18:04
 
Fecha de Ingreso: noviembre-2007
Mensajes: 133
Antigüedad: 16 años, 5 meses
Puntos: 0
Contar dias

Hola como estan ???
Bueno necesito saber cuales son los clientes que tienen cuenta y que la ultima entrega que hicieron sea mayor de una cantidad determinada de días.
Aca tengo la estrutuca de las tablas

CUENTA
______

codcliente
codcuenta
debe



CLIENTES
______

codcli
nombre
apellido
email



MOV_CUENTA
__________

codcuenta
fecha
entrega




Bueno la idea es seleccionar los datos de aquellos clientes que tienen cuenta y que la fecha de la ultima entrega sea mayor que la cantidad de dias indicada en una variable...
Se me complica porque no se como hacer para buscar y comparar esa ultima fecha de entrega

Las entregas estan en la tabla mov_cuenta deonde el campo fecha es el que necesito usar para corroborar si la ultima entrega ya ha superado los dias que ingreso en la variable


Código:
select clientes.codcli, concat(clientes.nombre,' ', clientes.apellido) as clientes, 
clientes.email from cuenta, clientes, mov_cuenta where clientes.codcli = cuenta.codcliente .....
de ahi en mas no logro encontrar la forma

Muchas gracias
  #2 (permalink)  
Antiguo 30/05/2009, 18:34
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Contar dias

podrías hacer un datediff para obtener el numero de dias y compararlo con el que requieres.

si haces un

Código mysql:
Ver original
  1. select if(datediff(now(),fecha_entrega)>30,'cumple condicion','no cumple condicion') from mov_cuenta;

La función datediff retorna el numero de dias que hay entre dos fechas.

Si es lo que necesitas, acomodalo a tus necesidades en tu consulta.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 30/05/2009, 18:48
 
Fecha de Ingreso: noviembre-2007
Mensajes: 133
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Contar dias

Y como se que la fecha que estoy comparando es la ultima ???
  #4 (permalink)  
Antiguo 30/05/2009, 18:53
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Contar dias

con esto:

Código mysql:
Ver original
  1. SELECT if(DATEDIFF(NOW(),max(fecha_entrega))>30,'cumple condicion','no cumple condicion') FROM mov_cuenta;

Con la función max puedes obtenerla.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 30/05/2009, 19:59
 
Fecha de Ingreso: noviembre-2007
Mensajes: 133
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Contar dias

te entiendo pero mira esto

Código:
SELECT clientes.nombre from clientes, cuenta, mov_cuenta 
where clientes.codcli = cuenta.codcliente and cuenta.codcuenta = mov_cuenta.codcuenta 
and DATEDIFF(NOW(), max(mov_cuenta.fecha))>30;
me da error

Invalid use of group function
  #6 (permalink)  
Antiguo 30/05/2009, 20:53
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Contar dias

Si la vas a usar en la condición, prueba esto:

Código mysql:
Ver original
  1. SELECT clientes.nombre from clientes, cuenta, mov_cuenta
  2. where clientes.codcli = cuenta.codcliente and cuenta.codcuenta = mov_cuenta.codcuenta
  3. and DATEDIFF(NOW(), (select max(fecha) from mov_cuenta))>30;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 30/05/2009, 21:12
 
Fecha de Ingreso: noviembre-2007
Mensajes: 133
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Contar dias

ahhh muchas gracias
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 06:10.