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

Consulta por fecha mas reciente

Estas en el tema de Consulta por fecha mas reciente en el foro de Mysql en Foros del Web. Hola, no se me ocurre la solución para lo siguiente. Espero que pueda explicarme bien. Por ejemplo teniendo la siguiente tabla Lo que necesito es ...
  #1 (permalink)  
Antiguo 25/03/2011, 00:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 15 años, 11 meses
Puntos: 0
Consulta por fecha mas reciente

Hola, no se me ocurre la solución para lo siguiente. Espero que pueda explicarme bien. Por ejemplo teniendo la siguiente tabla




Lo que necesito es recuperar 1 registro por cada user_id pero solo el mas reciente, es decir que en el caso del user_id=5 solo debo traer el de date=2011-03-24 17:36:25.

Supongo que tengo que usar group by para los user_id, y MAX para la fecha, pero no se me ocurre como.
  #2 (permalink)  
Antiguo 25/03/2011, 06:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta por fecha mas reciente

Código MySQL:
Ver original
  1. Select user_id,max(date) From tutabla group by user_id;

Yo no usaria "date" como nombre de campo porque es palabra reservada usa "fecha".
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 25/03/2011, 23:42
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Consulta por fecha mas reciente

quimfv gracias por la respuesta, pero había probado eso antes y no me trae el registro ultimo. Para graficarlo mejor, lo explico con otra columna mas. Teniendo la tabla que muestro a continuación, necesito recuperar 1 registro por cada user_id pero solo el mas reciente, y en el caso del user_id=5 sería la fila seleccionada:



Sin embargo con el script que me diste, obtengo este resultado:



Si te fijas, combina campos, efectivamente trae la fecha mas reciente, pero con los datos de otro registro, trae balance=50 cuando en realidad necesito el del balance=0.04
  #4 (permalink)  
Antiguo 27/03/2011, 23:20
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Consulta por fecha mas reciente

Nadie tuvo que hacer algo parecido? debe ser en el WHERE, una subconsulta. Seguire probando.
  #5 (permalink)  
Antiguo 28/03/2011, 02:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta por fecha mas reciente

No puedes poner mas campos a esa consulta, tu solo pedias seleccionar el registro con la facha maxima y la que te proponia retorna la fecha maxima...

Para hacer lo que ahora dices debes usar una subconsulta

Código MySQL:
Ver original
  1. SELECT t.user_id,t.fecha,t.balance
  2. FROM tutabla t
  3. WHERE fecha=(SELECT max(t2.fecha)
  4.                          FROM tutabla t2
  5.                          WHERE t2.user_id=t.user_id)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 28/03/2011 a las 04:00
  #6 (permalink)  
Antiguo 29/03/2011, 16:02
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Consulta por fecha mas reciente

Tienes razon, no me explique bien al comienzo, ahora funciona, muchas gracias quimfv

Etiquetas: Ninguno
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 15:57.