Ayuda con una consulta SQL

21/07/2004 - 09:31 por Jaime Pérez | Informe spam
Hola:

A ver si me podeis ayudar con esta consulta SQL
Tengo una tabla con titulares de noticias, con una fecha y que pertenecen a
un seccion. Por otro lado tengo una tabla con los nombres de las secciones
que existen y el orden en que se deben presentar:

Tabla Secciones
seccion varchar
orden int

Tabla noticias
id int
titular varchar
fecha datetime
seccion varchar

Quiero obtener en una consulta, por cada sección ordenada por el campo orden
la última noticia de hoy (sólo una, obtenida a partir del campo fecha o
ultimo id si hay varias de hoy).

¿alguna idea de consulta?
 

Leer las respuestas

#1 Carlos Sacristan
21/07/2004 - 09:58 | Informe spam
Como siempre, hay varias opciones, pero una posible solución puede ser
la siguiente:

SELECT s.seccion, s.orden, n.titular, n.fecha
FROM secciones s INNER JOIN noticia n ON s.seccion=n.seccion INNER
(SELECT MAX(fecha) maxFecha,seccion FROM noticia GROUP BY
seccion) mF ON mF.maxFecha=n.fecha AND mf.seccion=n.seccion
ORDER BY s.orden

En esta consulta se sobreentiende que la hora también la estás enviando
al grabar los datos. Eso sí, si no tienes un índice sobre el campo fecha de
la noticia, yo se lo pondría para mejorar el rendimiento...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Jaime Pérez" escribió en el mensaje
news:#
Hola:

A ver si me podeis ayudar con esta consulta SQL
Tengo una tabla con titulares de noticias, con una fecha y que pertenecen


a
un seccion. Por otro lado tengo una tabla con los nombres de las secciones
que existen y el orden en que se deben presentar:

Tabla Secciones
seccion varchar
orden int

Tabla noticias
id int
titular varchar
fecha datetime
seccion varchar

Quiero obtener en una consulta, por cada sección ordenada por el campo


orden
la última noticia de hoy (sólo una, obtenida a partir del campo fecha o
ultimo id si hay varias de hoy).

¿alguna idea de consulta?




Preguntas similares