Consulta que muestre ultimo mes en formulario

Donde incluyo los campos, idsitio, nombresitio, cuota, firmasol, mes y año. Ya tengo la consulta echa y he usado la función ultimo, pero veo que no toma el ultimo mes, si no, el ultimo registro. Ejmp.

Meses registrados

-Enero

-Febrero

-Septiembre

-Julio

La función "ultimo" toma el ultimo registro ingresado que en este caso es julio y lo muestra en la consulta... Lo que busco es que tome el "ultimo" pero el ultimo mes de año, osea "SEPTIEMBRE"...

Como me aconsejan que estructure mi consulta en la parrilla de consulta, ¿para poder hacer lo explicado arriba?

1 Respuesta

Respuesta
2

Usa números de mes en vez de nombres y usa máximo en vez de último para agrupar ese campo mes

Pensando en el futuro, sería aún mejor que tuvieses un campo AñoMes con este formato: YYYYMM, por ejemplo 201601, 201602, 201603... y si buscas por ese campo, siempre tendrás el mes más actual, o el último del año... o prácticamente el que quieras buscar.

Sveinbjorn: gracias por la respuesta te he de comentar que me sirvió ya que funcionó perfectamente... al cambiarlos a números, ahora el campo en mi formulario de Mes, me muestra el numero en ves del nombre del mes... ¿cómo hago para que muestre el nombre y no el numero?

Resolví la respuesta anterior... pero ha surgido otro problema. La consulta ya muestra el mes mayor como quería, pero ahora el problema está en el campo Año, ej.

Mes------------------------------año

Enero-------------------------2016

Febrero---------------------2016

Septiembre---------------2016

Diciembre-----------------2015

Evidentemente va a tomar el valor máx del mes que es diciembre del 2015... y requiero que tome el mes de Septiembre del 2016. Por las pruebas que hice, veo que la consulta muestra el mes mayor que es DICIEMBRE y el en la consulta tengo el campo de AÑO en Máx por lo tanto también muestra el año agrupado máximo que es 2016. Entonces en el formulario me muestra en el campo mes: Diciembre ;y en el campo AÑO: 2016, cuando ese campo ni corresponde a ese mes

Parece que no leíste mi segunda respuesta, seguramente por el mal funcionamiento de la web..., en la que te decía que usases un campo que combine el mes y el año (YYYYMM) y uses ese campo para sacar el máximo. Luego puedes usar las funciones Left y Right para sacar año y mes.

Para saber el nombre del mes a partir del número, tienes la función MonthName().

Otra opción es hacer la consulta de esta forma:

SELECT Max(TuTabla.Mes) AS MáxDeMes, TuTabla.Año
FROM TuTabla
WHERE TuTabla.Año = (SELECT Max(TuTabla.Año) AS MáxDeAño
FROM TuTabla)
GROUP BY TuTabla.Año;

es decir, agrupas por el valor del Año ("Agrupar por" en la fila de total de la consulta) y por máximo el Mes, y luego filtras para que te devuelva solo los valores correspondientes al mayor año.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas