La solution d'Exercice SQL Corrigé : gestion simplifiée des étapes du Tour de France 97
1 - Quelle est la composition de l'équipe Festina (Numéro, nom et pays des coureurs) ?
SELECT NuméroCoureur , NomCoureur , NomPays
FROM EQUIPE A , COUREUR B ,PAYS C
WHERE A.CodeEquipe=B.CodeEquipe And B.CodePays=C.CodePays And NomEquipe "FESTINA" ;
2 - Quel est le nombre de kilomètres total du Tour de France 97 ?
SELECT SUM (Nbkm) FROM ETAPE ;
3 - Quel est le nombre de kilomètres total des étapes de type "Haute Montagne"?
SELECT SUM (Nbkm) FROM ETAPE A,TYPE_ETAPE B
WHERE A.CODEType=B.CodeType And LibelléType="Haute Montagne" ;
4 - Quels sont les noms des coureurs qui n'ont pas obtenu de bonifications ?
SELECT NomCoureur FROM COUREUR
WHERE NuméroCoureur NOT IN (SELECT NuméroCoureur FROM ATTRIBUER_BONIFICATION );
5 - Quels sont les noms des coureurs qui ont participé à toutes les étapes ?
SELECT NomCoureur
FROM PARTICIPER A, COUREUR B
WHERE A.NuméroCoureur=B.NuméroCoureur
GROUP BY NuméroCoureur, NomCoureur
HAVING COUNT(*)=(SELECT COUNT(*) FROM ETAPE);
6 - Quel est le classement général des coureurs (nom, code équipe, code pays et temps des coureurs) à l'issue des 13 premières étapes sachant que les bonifications ont été intégrées dans les temps réalisés à chaque étape ?
SELECT NomCoureur , CodeEquipe , CodePays, SUM(TempsRéalisé) AS Total
FROM PARTICIPER A, COUREUR B
WHERE A.NuméroCoureur=B.NuméroCoureur and NuméroEtape<=13
GROUPE BY A.NuméroCoureur, NomCoureur, CodeEquipe,COdePays
ORDER BY Total ;
7 - Quel est le classement par équipe à l'issue des 13 premières étapes (nom et temps des équipes) ?
SELECT NomEquipe, SUM(TempsRéalisé) AS Total
FROM PARTICIPER A,COUREUR B, EQUIPE C
WHERE A.NuméroCoureur=B.NuméroCoureur And B.CodeEquipe=C.CodeEquipe And NuméroEtape<=13
GROUP BY B.CodeEquipe , NomEquipe
ORDER BY Total ;
SELECT NuméroCoureur , NomCoureur , NomPays
FROM EQUIPE A , COUREUR B ,PAYS C
WHERE A.CodeEquipe=B.CodeEquipe And B.CodePays=C.CodePays And NomEquipe "FESTINA" ;
2 - Quel est le nombre de kilomètres total du Tour de France 97 ?
SELECT SUM (Nbkm) FROM ETAPE ;
3 - Quel est le nombre de kilomètres total des étapes de type "Haute Montagne"?
SELECT SUM (Nbkm) FROM ETAPE A,TYPE_ETAPE B
WHERE A.CODEType=B.CodeType And LibelléType="Haute Montagne" ;
4 - Quels sont les noms des coureurs qui n'ont pas obtenu de bonifications ?
SELECT NomCoureur FROM COUREUR
WHERE NuméroCoureur NOT IN (SELECT NuméroCoureur FROM ATTRIBUER_BONIFICATION );
5 - Quels sont les noms des coureurs qui ont participé à toutes les étapes ?
SELECT NomCoureur
FROM PARTICIPER A, COUREUR B
WHERE A.NuméroCoureur=B.NuméroCoureur
GROUP BY NuméroCoureur, NomCoureur
HAVING COUNT(*)=(SELECT COUNT(*) FROM ETAPE);
6 - Quel est le classement général des coureurs (nom, code équipe, code pays et temps des coureurs) à l'issue des 13 premières étapes sachant que les bonifications ont été intégrées dans les temps réalisés à chaque étape ?
SELECT NomCoureur , CodeEquipe , CodePays, SUM(TempsRéalisé) AS Total
FROM PARTICIPER A, COUREUR B
WHERE A.NuméroCoureur=B.NuméroCoureur and NuméroEtape<=13
GROUPE BY A.NuméroCoureur, NomCoureur, CodeEquipe,COdePays
ORDER BY Total ;
7 - Quel est le classement par équipe à l'issue des 13 premières étapes (nom et temps des équipes) ?
SELECT NomEquipe, SUM(TempsRéalisé) AS Total
FROM PARTICIPER A,COUREUR B, EQUIPE C
WHERE A.NuméroCoureur=B.NuméroCoureur And B.CodeEquipe=C.CodeEquipe And NuméroEtape<=13
GROUP BY B.CodeEquipe , NomEquipe
ORDER BY Total ;