Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/06/2010, 01:17
PepitoVadeCurt
 
Fecha de Ingreso: julio-2009
Mensajes: 46
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Ayuda con consulta

Cita:
Iniciado por jurena Ver Mensaje
Primero debes aclararnos alguna cosa.
Dices que tienes en cada registro o línea campos para año, mes día. Se tratará de campos de tipo INT o VARCHAR.
Te has equivocado al plantear tu base, creo, pues deberías haber creado un campo tipo DATE para incluir la fecha con el formato año-mes-día, ej., 2010-06-27
y ahora podrías obtener lo que quieres sin tener que reunir los datos ni hacer casting a fecha.
Para obtener todas las líneas cuya fecha es la más alta, tendrás que usar MAX(campofecha) pero tendrás que usarlo en una subconsulta.
Imaginemos que ya tienes un campofecha de tipo DATE con las fechas incluidas como te dije
SELECT * FROM tutabla WHERE campofecha = (SELECT MAX(campofecha) FROM tutabla)

Si no pudieras cambiar ahora los tres campos a uno sólo, podríamos ofrecerte otra solución con la función STR_TO_DATE, pero debes decirnos cómo guardas los datos del año, mes y día, por ej., si guardas con el 0 por delante en el mes y día
Gracias por responder. Lo ideal seria tener el campo tal y como lo dices pero es una adaptación para una aplicación antigua y cada campo (año, mes y día) está en una variable de tipo entero.
He hecho la consulta pero tengo el problema que los meses y años que son de 1 digito, los pone como debe, con 1 digito.
Código:
SELECT max(concat(concat(año,mes),dia)) FROM divisas where
codigo='USD'
Me devuelve la fecha máxima de cada divisa que le paso.
Código:
2010216
No sé si podría hacer que me devolviera el día y mes en un 0 delante si es de un digito.
Saludos.