Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Anonymous250 en 15 Enero 2012, 18:00 pm



Título: Ayuda para Resolver 9 consultas
Publicado por: Anonymous250 en 15 Enero 2012, 18:00 pm
(http://img15.imageshack.us/img15/5670/ejercicio9.jpg)

Del siguiente esquema .

¿Qué ciclistas han llevado el mismo maillot que Alberto Contador?
Yo intente esto pero esta mal obvio....
MAL
Código:
SELECT nombre
FROM Ciclistas
WHERE EXISTS
(SELECT dorsal FROM Ciclistas Where dorsal=(SELECT codigomalliot from llevar where codigomalliot=
(SELECT codigomalliot From Malliots Where Ciclistas.nombre ="Alberto Contador"
)));

Obtener el valor del atributo netapa de las etapas que no comienzan en la misma ciudad en que acabó la anterior etapa.

Yo intente esto pero esta mal obvio....
MAL
Código:
SELECT netapa AS [numero Etapa]
From Etapas
WHERE NOT EXISTS(SELECT netapa FROM Etapas WHERE salidas=llegadas);

Obtener el nombre de los ciclistas que han ganado todos los puertos de una etapa y además han ganado esa misma etapa.
Yo intente esto pero esta mal obvio....
MAL

Código:
SELECT DISTINCT nombre
FROM Ciclistas
WHERE dorsal IN (SELECT Etapas.dorsalganador FROM Etapas, Puertos WHERE Puertos.netapa = Etapas.netapa
AND Etapas.dorsalganador = Puertos.dorsalciclista)
Obtener el nombre de los equipos tales que todos sus corredores han llevado algún maillot o han ganado algún puerto.
Yo intente esto pero esta mal obvio....
MAL
Código:
SELECT Ciclistas.nomeq AS [Equipo], COUNT(Ciclistas.nomeq) AS [Ciclistas válidos]
FROM Ciclistas
WHERE Ciclistas.dorsal IN(SELECT dorsalciclista FROM Puertos) OR Ciclistas.dorsal IN(SELECT [dorsal ciclista] FROM Llevar)
GROUP BY Ciclistas.nomeq;
Obtener el código y el color de aquellos maillots que sólo han sido llevados por ciclistas de un mismo equipo.
Yo intente esto pero esta mal obvio....
MAL
Código:
SELECT DISTINCT Llevar.codigomalliot, Ciclistas.nomeq
FROM Llevar, Ciclistas
Where Llevar.[dorsal ciclista] = Ciclistas.dorsal;
Obtener el dorsal y el nombre de los ciclistas que no han llevado todos los maillots que ha llevado el ciclista de dorsal 2.
Yo intente esto pero esta mal obvio....
MAL
Código:
SELECT dorsal,nombre
FROM Ciclistas
Where dorsal NOT IN(SELECT [dorsal ciclista] FROM LLEVAR WHERE codigomalliot=(SELECT codigomalliot FROM Malliots));
Obtener el dorsal y el nombre de los ciclistas que no han llevado ningún maillot de los que ha llevado el ciclista de dorsal 2.

Obtener el dorsal y nombre de los ciclistas que han llevado exactamente los mismos maillots que ha llevado el ciclista de dorsal 1.

Obtener el dorsal y el nombre del ciclista que ha llevado durante más kilómetros un mismo maillot e indicar también el color de dicho maillot.

Obtener el dorsal y el nombre de los ciclistas que han llevado dos tipos de maillot menos de los que ha llevado el ciclista de dorsal 3.