Programmation sql plus;pl sql sous oracle

Fermé
kingjoss - 22 mars 2010 à 10:49
 swed - 22 mars 2010 à 10:59
BONJOUR
Je souhaite afficher le classement des concurrents après une épreuve sportive (athlétisme).
Je dispose des données suivantes :
* La liste des concurrents,
* Le résultat (temps réalisé) obtenu par chaque concurrent.
On souhaite mémoriser le rang (1er, 2ème, 3ème...) et le nom de chaque concurrent, ainsi que l'écart de son temps avec le meilleur temps.
1) Créer une table CONCURRENT (NUMERO, NOM) qui contiendra la liste des noms des concurrents et une table RESULTAT (ID_RESULT, NUMERO_CONC, TEMPS) associant à chaque concurrent le temps qu'il a réalisé. Une valeur NULL pour le temps signifie un abandon du concurrent. ID_RESULT devra être alimenté par une séquence et NUMERO_CONC correspond à NUMERO de concurrent.
2) Remplir les tables CONCURRENT et RESULTAT comme ci-dessous.

Table CONCURRENT
NUMERO NOM
------ -------------------
1 KABORE
2 OUEDRAOGO
3 SAWADOGO
4 TOURE
5 ZONGO
6 KABRE
7 YAMEOGO
8 TRAORE
9 ZERBO
10 DIALLO
Table RESULTAT
ID_RESULT NUMERO_CONC TEMPS
----------- --------- ---------
1 1 3.25
2 2 3.15
3 3 NULL
4 4 3.16
5 5 3.14
6 6 3.15
7 7 3.09
8 8 3.10
9 9 3.10
10 10 3.19

3) Créer une table CLASSEMENT (RANG, NOM, ECART) qui contiendra le classement des concurrents, du premier au dernier. Les concurrents ayant abandonné ne doivent pas y figurer.
4) Écrire un programme PL/SQL permettant de remplir la table classement. Les concurrents qui ont le même temps doivent être de même rang. Le résultat attendu est présenté ci-dessous.

RANG NOM ECART
---- --- ---------
1 YAMEOGO 0
2 TRAORE ,01
2 ZERBO ,01
3 ZONGO ,05
4 OUEDRAOGO ,06
4 KABRE ,06
5 TOURE ,07
6 DIALLO ,1
7 KABORE ,16

Merci d'avance a tous.
A voir également:

1 réponse

Bonjour,
Ok, tu souhaites faire ça, c'est bien.
Mais quelle est la question ?
0