pregunta en consulta
Publicado por Mauro (2 intervenciones) el 12/02/2012 23:07:22
Buenas, dispongo de las siguientes tablas
Congreso = (IdCongreso(PK), Nombre, Fecha_Inicio, Fecha_Fin)
Área = (IdArea(PK), Nombre, Descripción)
Posee = (IdCongreso(PK), IdArea(PK))
Artículo = (IdArtículo(PK), Título, Cantidad_Hojas, Fecha_Recepción, IdArea, IdCongreso)
Autor = (Dni(PK), Nombre, Apellido)
Escribe = (IdArtículo(PK), Dni(PK))
PK = Primary Key.
Me pide lo siguiente
Listar el nombre y apellido de aquellos autores que presentaron artículos en el congreso “WICC
2009” pero que no hayan presentado en el congreso “TE&ET 2009”
La consulta la puedo resolver utilizando la cláusula EXCEPT.
SELECT au.Nombre,au.Apellido
FROM Congreso c INNER JOIN Articulo art ON (c.idCongreso = art.idCongreso)
INNER JOIN Escribe e ON(art.idArticulo = e.idArticulo)
INNER JOIN Autor au ON(au.Dni = e.Dni)
WHERE(c.Nombre = 'WICC2009')
EXCEPT
SELECT au.Nombre,au.Apellido
FROM Congreso c INNER JOIN Articulo art ON (c.idCongreso = art.idCongreso)
INNER JOIN Escribe e ON(art.idArticulo = e.idArticulo)
INNER JOIN Autor au ON(au.Dni = e.Dni)
WHERE(c.Nombre = 'TE&ET2009')
Estoy usando Open Office y el EXCEPT no me funciona.
Así que hice la consulta de esta manera
SELECT au.Nombre,au.Apellido
FROM Congreso c INNER JOIN Articulo art ON (c.idCongreso = art.idCongreso)
INNER JOIN Escribe e ON(art.idArticulo = e.idArticulo)
INNER JOIN Autor au ON(au.Dni = e.Dni)
WHERE(c.Nombre = 'WICC2009' AND c.Nombre NOT IN (SELECT Nombre
FROM Congreso
WHERE Nombre = 'TE&ET2009'))
ORDER BY au.Nombre
Quería saber si esta consulta es equivalente a la anterior es decir si cumple con lo que dice el enunciado, es una práctica previa del examen que tengo en unos días, así que si me pueden responder se los agradecería mucho
Saludos!
Congreso = (IdCongreso(PK), Nombre, Fecha_Inicio, Fecha_Fin)
Área = (IdArea(PK), Nombre, Descripción)
Posee = (IdCongreso(PK), IdArea(PK))
Artículo = (IdArtículo(PK), Título, Cantidad_Hojas, Fecha_Recepción, IdArea, IdCongreso)
Autor = (Dni(PK), Nombre, Apellido)
Escribe = (IdArtículo(PK), Dni(PK))
PK = Primary Key.
Me pide lo siguiente
Listar el nombre y apellido de aquellos autores que presentaron artículos en el congreso “WICC
2009” pero que no hayan presentado en el congreso “TE&ET 2009”
La consulta la puedo resolver utilizando la cláusula EXCEPT.
SELECT au.Nombre,au.Apellido
FROM Congreso c INNER JOIN Articulo art ON (c.idCongreso = art.idCongreso)
INNER JOIN Escribe e ON(art.idArticulo = e.idArticulo)
INNER JOIN Autor au ON(au.Dni = e.Dni)
WHERE(c.Nombre = 'WICC2009')
EXCEPT
SELECT au.Nombre,au.Apellido
FROM Congreso c INNER JOIN Articulo art ON (c.idCongreso = art.idCongreso)
INNER JOIN Escribe e ON(art.idArticulo = e.idArticulo)
INNER JOIN Autor au ON(au.Dni = e.Dni)
WHERE(c.Nombre = 'TE&ET2009')
Estoy usando Open Office y el EXCEPT no me funciona.
Así que hice la consulta de esta manera
SELECT au.Nombre,au.Apellido
FROM Congreso c INNER JOIN Articulo art ON (c.idCongreso = art.idCongreso)
INNER JOIN Escribe e ON(art.idArticulo = e.idArticulo)
INNER JOIN Autor au ON(au.Dni = e.Dni)
WHERE(c.Nombre = 'WICC2009' AND c.Nombre NOT IN (SELECT Nombre
FROM Congreso
WHERE Nombre = 'TE&ET2009'))
ORDER BY au.Nombre
Quería saber si esta consulta es equivalente a la anterior es decir si cumple con lo que dice el enunciado, es una práctica previa del examen que tengo en unos días, así que si me pueden responder se los agradecería mucho
Saludos!
Valora esta pregunta


0