TD N°2 BD5 EN SQL a) Nom et Prime des joueurs sponsorisés par ...
TD N°2 BD5 EN SQL. a) Nom et Prime des joueurs sponsorisés par Peugeot
entre 1985 et 1990. SELECT Nomjoueur , Prime. FROM GAIN. WHERE ...
part of the document
TD N°2 BD5 EN SQL
a) Nom et Prime des joueurs sponsorisés par Peugeot entre 1985 et 1990
SELECT Nomjoueur , Prime
FROM GAIN
WHERE NomSponsor = Peugeot AND
Date BETWEEN 1985 AND 1990 ;
Ou
SELECT Nomjoueur , Prime
FROM GAIN
WHERE NomSponsor = Peugeot AND
Date >= 1985 AND Date= 1 000 000 AND
NOT EXISTS ( SELECT *
FROM GAIN G2
WHERE LieuTournoi = Rolland Garros AND
G2.Prime < 1 000 000 AND
G1.NomJoueur = G2.NomJoueur);
Avec Minus
SELECT DISTINCT NomJoueur
FROM GAIN
WHERE LieuTournoi = Rolland Garros AND
Prime > 1 000 000
MINUS ( SELECT DISTINCT NomJoueur
FROM GAIN
WHERE LieuTournoi = Rolland Garros AND
Prime < 1 000 000);
Avec IN
SELECT NomJoueur
FROM GAIN
WHERE LieuTournoi = Rolland Garros AND
Prime >= 1 000 000 AND
NomJoueur NOT IN (SELECT DISTINCT NomJoueur
FROM GAIN
WHERE LieuTournoi = Rolland Garros AND
Prime < 1 000 000 );
Sans MINUS , IN ou EXISTS
SELECT NomJoueur
FROM GAIN G
WHERE 1 000 000 R1.NomGagnant AND
J2.Nom = R1.NomPerdant))AND
NOT EXISTS (SELECT *
FROM RENCONTRE R2
WHERE (J1.Nom > R2.NomPerdant AND
J2.Nom = R2.NomGagnant));
h) Nom des joueurs ayant participé à tous les tournois de Rolland Garros
SELECT NomJoueur
FROM GAIN G1
WHERE NOT EXISTS ((SELECT DISTINCT Date
FROM GAIN
WHERE LieuTournois = Rolland Garros)
MINUS
(SELECT Date
FROM GAIN G2
WHERE G1.NomJoueur = G2.NomJoueur AND
G1.LieuTournoi = Rolland Garros));
Lopération division nexiste pas en SQL
i) Nombre de joueur ayant participé au tournoi de Wimbledon en 1989
SELECT COUNT(*) ( COUNT(NomJoueur)
FROM GAIN
WHERE LieuTournoi = Wimbledon AND
Date = 1989 ;
j) Moyenne des primes gagnées par année
SELECT AVG(Prime)
FROM GAIN
GROUP BY Date ;
AVG cest la Moyenne