Atacando de nuevo con otra duda que San Google no me ha resuelto, aunque me ha dado pistas.
Quiero ordenar la respuesta de una consulta SQL a una base de datos por tres campos (Año,mes,día) y averiguar el “valor” de un campo en esa fecha.
Lo primero que encontré me hizo crear la consulta:
SELECT ‘valor’ FROM ‘mi_tabla’ ORDER BY ‘ano’,'mes’,'dia’ DESC LIMIT 1;
La respuesta no me vale, no coloca la respuesta bien, el problema es que no coloco el año y el mes de mayor a menor, lo dejo con el valor por defecto (ascendente).
La consulta correcta es:
SELECT ‘valor’ FROM ‘mi_tabla’ ORDER BY ‘ano’ DESC , ‘mes’ DESC , ‘dia’ DESC LIMIT 1;
y si se dan dos o más “valores” en una misma fecha podríamos añadir otro orden, por ejemplo el id o si el “valor” es ordenable utilizarlo de des-empate.
SELECT ‘valor’ FROM ‘mi_tabla’ ORDER BY ‘ano’ DESC , ‘mes’ DESC , ‘dia’ DESC , ‘id’ DESC LIMIT 1;
SELECT ‘valor’ FROM ‘mi_tabla’ ORDER BY ‘ano’ DESC , ‘mes’ DESC , ‘dia’ DESC , ‘valor’ ASC LIMIT 1;
- El “valor” del segundo ejemplo lo ordeno de menor a mayor.