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

[SOLUCIONADO] Consulta SQL

Estas en el tema de Consulta SQL en el foro de Mysql en Foros del Web. Hola, ante todo daros las gracias por leerme. Quiero exponeros una consulta ya que no soy capaz de hacer lo que quiero y ya estoy ...
  #1 (permalink)  
Antiguo 01/06/2016, 10:59
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 39
Antigüedad: 13 años
Puntos: 1
Consulta SQL

Hola, ante todo daros las gracias por leerme.
Quiero exponeros una consulta ya que no soy capaz de hacer lo que quiero y ya estoy muy frustrado, quizás es una tontería y se me escapa, pero ya no se me ocurre como hacerlo.

Tengo esta Tabla:
id_gestion (PK), id_vendedor, id_cliente, id_inmueble, fecha, hora, tipo_gestion, obs.

Un vendedor puede tener muchas gestiones, asi como un cliente también.

Lo que quiero sacar es un solo registro por cada cliente con su gestión más nueva (fecha y hora mayores)

Gracias!

Suponiendo
Id_gestion id_vendedor id_cliente fecha hora tipo
1 1 1 01/01 10:00 a
2 1 1 01/01 11:00 a
3 1 2 01/01 12:00 a
4 1 2 02/01 09:00 b
5 1 3 03/01 15:00 a

La idea es que me devuelva las filas con id_gestion: 2, 4 y 5

Última edición por Lucky_Sky; 01/06/2016 a las 11:04
  #2 (permalink)  
Antiguo 01/06/2016, 11:18
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: Consulta SQL

Por lo pronto, si la columna "fecha" es un VARCHAR, como parece, no será facil. Debería ser un DATE, poner una fecha en un VARCHAR es un error de diseño gravísimo.

pero podemos intentarlo así:
Código MySQL:
Ver original
  1. SELECT Id_gestion, id_vendedor, id_cliente, fecha, hora, tipo
  2.     (SELECT Id_gestion, id_vendedor, id_cliente, fecha, hora, tipo
  3.     FROM tabla
  4.     ORDER BY id_cliente ASC, STR_TO_DATE(fecha, '%d/%m') DESC) t1
  5. GROUP BY id_cliente;
__________________
¿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; 01/06/2016 a las 11:24
  #3 (permalink)  
Antiguo 02/06/2016, 03:21
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 39
Antigüedad: 13 años
Puntos: 1
Respuesta: Consulta SQL

Hola gnzsoloyo, gracias por tu pronta respuesta y muchas gracias por el código.
La fecha es un DATE, el conjunto de datos de prueba está escrito así para simplificar.

He hecho la prueba del código que me has puesto y funciona (he tenido que añadir un order by hora desc también porque para dos gestiones del mismo día, sacaba la primera en vez de la última)

Llevo un rato dándole vueltas al código intentando entender como funciona, serías tan amable de explicarmelo?

Gracias de nuevo por todo!

Etiquetas: 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 14:01.