Bloc PL/SQL pour traduire note scolaire us en note fr

Bloc PL/SQL pour traduire note scolaire us en note fr - SQL/NoSQL - Programmation

Marsh Posté le 17-09-2005 à 14:32:47    

Bonjour,  
Je dois écrire un bloc PL/SQL permettant de faire correspondre la notation américaine (A, B, C…) avec une notation française (nombre compris entre 0 et 20). Le bloc permettra d’afficher les notes « françaises » de tous les étudiants.Les notes sont les suivantes:  
A+ 20 A 19 A- 18 B+ 16,5 B 15 B- 13,5 C+ 12 C 10,5 C- 9  
 
D+ 7,5 D 6 D- 4,5 F+ 3 F 1,5 F- 0  
 
Voici ce que j'ai écrit, mes ca ne marche pas... vu que l'exo doit etre rendu assez rapidement, si quelqu'un de bonne volonté pouvait me donner un coup de main, ca serait sympa.  
 
SET SERVEROUTPUT ON  
DECLARE  
note_us VARCHAR2(4) ;  
note_fr VARCHAR2(4) ;  
Affiche_note_usfr VARCHAR2(30);  
Affichenom VARCHAR2(30);  
Afficheprenom VARCHAR2(30);  
Afficheuv VARCHAR2(30);  
CURSOR cr_note IS  
SELECT note  
FROM Etudiant_cours  
ORDER BY note;  
BEGIN  
OPEN cr_note;  
LOOP  
FETCH cr_note  
INTO note;  
EXIT WHEN cr_note%NOTFOUND;  
Affiche_note_usfr := ''|| DECODE(note,'A+','20','A','19','A-','18','B+','16,5','B','15','B-','13,5','C+','12','C','10,5','C-','9','D+','7,5','D','6','D-','4,5','F+','3','F','1,5','F-','0')  
= WHERE ETUDIANT_CODE = ( SELECT ETUDIANT_CODE FROM ETUDIANT  
WHERE nom = 'ANASTATIA')||'';  
Affichenom := ''||(SELECT nom FROM etudiant WHERE nom = 'ANASTATIA')|| '';  
Afficheprenom := ''||(SELECT prenom FROM etudiant WHERE prenom = 'ANNA')|| '';  
Afficheuv := ''||(SELECT nom FROM etudiant WHERE nom = 'ANASTATIA')|| '';  
dbms_output.put_line ( Affichenom ||' '|| Afficheprenom ||' '|| Affiche_note_usfr || Afficheuv);  
END LOOP;  
CLOSE cr_note;  
END;  
/  
 
Merci

Reply

Marsh Posté le 17-09-2005 à 14:32:47   

Reply

Marsh Posté le 17-09-2005 à 14:46:06    

C'est du charabia ton code ...
 
Tu boucles sur ton curseur, et tu n'affiches que la meilleure note !
 
De plus, il faudrait que tu fasses ton DECODE dans le curseur.
Et enfin, fais les jointures nécessaires afin de récupérer toutes les infos à afficher dans le curseur.
 
PS: on donne juste des conseils ici, on va pas te résoudre ton exercice ;)

Reply

Marsh Posté le 17-09-2005 à 14:52:30    

Merci pour ces infos...  
N'ayant jamais fais de bloc je suis un peu perdu, mais puisque c du charabia, je vais le reprendre.
Merci pour ces conseils, je n'en attendais pas moins (et je n'ai pas envie qu'on me fasse mon exercice).
 

Beegee a écrit :

C'est du charabia ton code ...
 
Tu boucles sur ton curseur, et tu n'affiches que la meilleure note !
 
De plus, il faudrait que tu fasses ton DECODE dans le curseur.
Et enfin, fais les jointures nécessaires afin de récupérer toutes les infos à afficher dans le curseur.
 
PS: on donne juste des conseils ici, on va pas te résoudre ton exercice ;)


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed