SQL - Consulta select SQL

 
Vista:

Consulta select SQL

Publicado por Juan Pablo (2 intervenciones) el 18/09/2008 08:40:58
Hola: Tengo un problema. No se como hacer una consulta entre dos tablas, el enunciado es asi:
Seleccionar codigo_de_autor,nombre_de_autor, con su ULTIMO libro editado(titulo_libro y fecha_publicacion ) y de aquellos que no editaron libros solo codigo_de_autor y nombre_de_autor
es decir la tabla autores tiene:
codigo_de_autor, nombre
1 Juan
2 Pedro
3 Jose
la tabla titulos tiene:
codigo_libro, titulo_libro, codigo_de_autor, fecha_publicación
1 Historia Sin fin 1 11/11/2000
2 Aprendiendo VB 1 10/11/2005
3 Aprendiendo SQL 1 14/02/1995
4 Aprendiendo C# 3 09/06/1986
5 ASP.NET 3 16/12/1994

Yo necesito lo siguiente:

Codigo_de_autor, Nombre_de_autor, titulo_libro, fecha_publicacion
1 Juan Aprendiendo VB 10/11/2005
2 Pedro Null Null
3 Jose ASP.NET 16/12/1994

Se que la consulta necesita un left join pero no se como hacer para que se eliminen las ocurrencias de cada autor que se repiten (me aparece 3 veces juan,dos veces jose y pedro una vez)
Use group by codigo_de_autor pero no soluciona nada, si agluien me ayuda se los voy a agradecer. Muchas gracias
Juan pablo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta select SQL

Publicado por Angeles (12 intervenciones) el 18/09/2008 13:38:05
Tendrías que hacer dos consultas:

Consulta1:

SELECT titulos.[codigo_de autor], Max(titulos.fecha_publicacion) AS MáxDefecha_publicacion
FROM titulos
GROUP BY titulos.[codigo_de autor]
ORDER BY Max(titulos.fecha_publicacion);

Consulta2:

SELECT autores.codigo_de_autor, autores.nombre, titulos.codigo_libro, titulos.titulo_libro, titulos.fecha_publicacion
FROM (autores LEFT JOIN Consulta1 ON autores.codigo_de_autor = Consulta1.[codigo_de autor]) LEFT JOIN titulos ON Consulta1.MáxDefecha_publicacion = titulos.fecha_publicacion;

Saludos, Angeles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta select SQL

Publicado por Angeles (12 intervenciones) el 18/09/2008 13:43:23
A la consulta2 le falte vincular el código del autor:

consulta2:

SELECT autores.codigo_de_autor, autores.nombre, titulos.codigo_libro, titulos.titulo_libro, titulos.fecha_publicacion
FROM (autores LEFT JOIN Consulta1 ON autores.codigo_de_autor = Consulta1.[codigo_de autor]) LEFT JOIN titulos ON (Consulta1.[codigo_de autor] = titulos.[codigo_de autor]) AND (Consulta1.MáxDefecha_publicacion = titulos.fecha_publicacion);

Saludos, angeles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar