Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda con consulta: Ultimos post de cada autor

Estas en el tema de Ayuda con consulta: Ultimos post de cada autor en el foro de SQL Server en Foros del Web. Hola, quisiera plantear un problema que tengo y ojala alguien pudiera ayudarme. Necesito hacer una consulta (me gustaria que fuera una sola) para poder obtener ...
  #1 (permalink)  
Antiguo 16/05/2009, 12:43
 
Fecha de Ingreso: noviembre-2008
Ubicación: México
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 1
Ayuda con consulta: Ultimos post de cada autor

Hola, quisiera plantear un problema que tengo y ojala alguien pudiera ayudarme.

Necesito hacer una consulta (me gustaria que fuera una sola) para poder obtener los ultimos artículos o posts que se han publicado de cada autor.

Mis tablas son estas (pongo solo los campos que importan):

Tengo una tabla de articulos que tiene los campos ID_ARTICULO, ID_AUTOR, FECHA_PUBLICACION, etc y una tabla de autores con sus respectivos campos de ID_AUTOR, NOMBRE_AUTOR, etc.

Como mencione anteriormente me gustaria obtener el ultimo articulo (osea con la fecha de publicacion mas nueva) de cada autor. Creen que se pueda hacer en una sola consulta?

De antemano les agradesco por su atención :).
  #2 (permalink)  
Antiguo 16/05/2009, 15:11
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Ayuda con consulta: Ultimos post de cada autor

Select TOP 1 * From Articulos A Inner Join Autor T ON (A.Id_Autor = T.Id_Autor)
order by A.Id_Articulo DESC
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 18/05/2009, 10:43
 
Fecha de Ingreso: noviembre-2008
Ubicación: México
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda con consulta: Ultimos post de cada autor

Muchas gracias por tu respuesta Dradi7, pero creo que no me entendiste.

Mira lo que yo quisiera sacar es el último artículo que cada autor (todos) haya publicado, no solo el último artículo en general.

Bueno, supongamos que tengo algo como esto:

Código:
ID_ARTICULO   |   ID_AUTOR   |   FECHA_PUBLICACION
     56               2             8/05/2009
     57               1            10/05/2009
     58               1            11/05/2009
     59               3            12/05/2009
     60               4            13/05/2009
Lo que yo quisiera obtener sería:

Código:
ID_ARTICULO   |   ID_AUTOR   |   FECHA_PUBLICACION
     56               2             8/05/2009
     58               1            11/05/2009
     59               3            12/05/2009
     60               4            13/05/2009
Espero haberme explicado mejor con este ejemplo :P
  #4 (permalink)  
Antiguo 18/05/2009, 12:28
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Ayuda con consulta: Ultimos post de cada autor

Prueba con
Código sql:
Ver original
  1. SELECT A.Id_Articulo,T.Id_Autor,MAX(A.Fecha_Publicacion) FROM Articulos A
  2.          LEFT OUTER JOIN Autor T ON (T.Id_Autor = A.Id_Autor)
  3.          GROUP BY A.Id_Arituclo,T.Id_Autor
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 18/05/2009, 15:27
 
Fecha de Ingreso: noviembre-2008
Ubicación: México
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda con consulta: Ultimos post de cada autor

Muchas gracias Dradi7, hice lo que me dijiste pero me repetia articulos del mismo autor.

Creo que ya lo resolvi xD, lo que hice fue parecido a lo que me pasaste pero para obtener el id del articulo hice un select anidado con un top 1 ordenado por fecha de publicacion.

Al final quedo algo como esto:

Código sql:
Ver original
  1. SELECT T.ID_USER,MAX(A.FECHA_PUBLICACION) AS FECHA_PUBLICACION,
  2. (SELECT TOP 1 ID_ARTICULO FROM AKL_ARTICULOS B
  3. WHERE B.ID_USER = T.ID_USER AND B.FECHA_PUBLICACION= FECHA_PUBLICACION
  4. ORDER BY FECHA_PUBLICACION DESC ) AS ID_ARTICULO
  5. FROM AKL_ARTICULOS A
  6. INNER JOIN AKL_USERS T ON (T.ID_USER = A.ID_USER)
  7. GROUP BY T.ID_USER
  8. ORDER BY FECHA_PUBLICACION DESC

Pues al parecer funciona, lo seguire probando para ver que tal.

Última edición por canastendo; 18/05/2009 a las 15:32
  #6 (permalink)  
Antiguo 18/05/2009, 15:55
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Ayuda con consulta: Ultimos post de cada autor

Entonces si te repetia cambia el valor del Left Outer Join por el Inner Join
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #7 (permalink)  
Antiguo 18/05/2009, 16:37
 
Fecha de Ingreso: noviembre-2008
Ubicación: México
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda con consulta: Ultimos post de cada autor

No me repetia los artículos, lo que hacia es que me devolvia todos los artículos del autor. Esto por que en la consulta se pedia el maximo de la fecha de publicacion pero se cumplia para todos los articulos por que los articulos no tienen mas de una fecha de publicacion. En cambio, si solo pedia el id del autor y el max de la fecha de publicacion si me mostraba la fecha del ultimo articulo publicado por el autor, entonces lo unico que hice fue agregar el select anidado para asi obtener el id del artículo que correspondia a esa fecha y ese usuario, y por si habia mas de un artículo de esa fecha y ese autor puse el top 1.

Muchas gracias por la ayuda, con eso que me pusiste me sirvio para basarme en lo que ocupaba :) .
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:12.