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

[SOLUCIONADO] consultas agrupadas

Estas en el tema de consultas agrupadas en el foro de Bases de Datos General en Foros del Web. Buen día a todos, soy un novato en base de datos y tengo una tabla socio_estado con estos datos: socio | fecha | estado 25 ...
  #1 (permalink)  
Antiguo 07/03/2015, 08:14
Avatar de pepenauta  
Fecha de Ingreso: marzo-2015
Ubicación: Santa Fe
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta consultas agrupadas

Buen día a todos, soy un novato en base de datos y tengo una tabla socio_estado con estos datos:

socio | fecha | estado
25 | 2005-09-28 12:00:00 | 1
25 | 2011-08-12 09:45:30 | 6
30 | 2005-01-27 12:00:00 | 2
44 | 1993-03-16 12:00:00 | 1
44 | 2010-07-01 12:15:31 | 6
46 | 2005-12-30 12:00:00 | 6
48 | 2005-08-26 12:00:00 | 6
49 | 2006-01-27 12:00:00 | 1
49 | 2008-04-28 17:39:04 | 4
49 | 2008-05-27 09:21:25 | 1

y me gustaría que mi consulta tuviera este resultado:

socio | fecha | estado
25 | 2011-08-12 09:45:30 | 6
30 | 2005-01-27 12:00:00 | 2
44 | 2010-07-01 12:15:31 | 6
46 | 2005-12-30 12:00:00 | 6
48 | 2005-08-26 12:00:00 | 6
49 | 2008-05-27 09:21:25 | 1

es decir, que me agrupe por socio y me muestre el estado de acuerdo a la fecha más reciente.

He probado:

Código SQL:
Ver original
  1. SELECT socio, MAX(fecha), estado
  2. FROM socio_estado
  3. GROUP BY socio ASC

Pero solo me agrupa los socios y me da el primer estado que encuentra, no el que corresponde a la fecha más actual. Leí que hay que hacer select añadidos pero no me sale, si alguien puede ayudarme le estaría muy agradecido.
  #2 (permalink)  
Antiguo 07/03/2015, 09:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consultas agrupadas

Voy a su poner que usas MySQL, porque de lo contrario esa query te daría un error de ejecución al no poner todos los campos no afectados con funciones...
Tu caso es de manual. Se ha preguntado infinidad de veces, y supongo que seguirán preguntando lo mismo porque no usan el buscador del foro...

Para que logres eso, si hay un campo fecha, lo que te conviene es realizar un ORDER BY previo, pero como el ORDER BY debe ir siempre después del GROUP BY, tendrás que resolverlo como subconsulta, haciendo que el ordenamiento sea una tabla derivada (lo que además obliga a usar alias para la misma)
Código MySQL:
Ver original
  1. SELECT socio, fecha, estado
  2.   (SELECT socio, fecha, estado
  3.   FROM socio_estado
  4.   ORDER BY fecha DESC) SE
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 07/03/2015 a las 09:45
  #3 (permalink)  
Antiguo 07/03/2015, 09:37
Avatar de pepenauta  
Fecha de Ingreso: marzo-2015
Ubicación: Santa Fe
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: consultas agrupadas

Gracias gnzsoloyo, funcionó. Efectivamente mi pregunta era sobre MySQL. Voy a seguir tu consejo y buscar con más detenimiento en el foro.
Saludos!

Etiquetas: agrupar, mysql, select
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 07:25.