Hola de nuevo,
He estado probando tu código SQL Andrés. Me queda así:
Código:
SELECT ForoMensajes.* FROM ForoHilos INNER JOIN (ForoMensajes INNER JOIN [SELECT IdHilo, MIN(FechaHora) AS MinimaFecha FROM ForoMensajes Group by IdHilo]. AS Minimo ON (Minimo.IdHilo=ForoMensajes.IdHilo) AND (ForoMensajes.FechaHora=Minimo.MinimaFecha)) ON ForoHilos.IdHilo=ForoMensajes.IdHilo WHERE (((ForoHilos.IdCategoria)=?))
Me devuelve los registros correctos. Pero el orden en que me los devuelve es:
FechaHora del primer mensaje del Hilo, Ascendende.
Y yo necesito:
FechaHora del ultimo mensaje del Hilo, Descendente.
Eso si, los mismos datos que me devuelve tu consulta, los del primer Mensaje de cada Hilo.
Ahora mismo lo que hago es recorrer todos los mensajes de la categoria, ordenados por FechaHora Descendente, y me voy guardando los IdHilo en un array, sin repetirlos.
Luego, por cada Hilo guardado en el array, voy recuperando los datos del primer mensaje del Hilo y construyendo un conjunto de datos que devuelvo finalmente.
Quisiera ahorrarme el primer paso (recorrer todos los mensajes de la categoria para obtener el orden de los hilos) a través de una SQL que me devuelva directamente los registros que necesito, ordenados como digo, si es posible.
Gracias por la ayuda!
Un saludo.