Bonjour à tous, je vous explique mon probleme:
J'ai 3 tables :
etudiant (numetud,nom, prenom, datenaiss, civilite, patronyme, numinsee, adresse)
inscription (numetud, codmod,dainsc,numtd)
resultat (numetud,codmod,codexam,note)
Je travail avec l'application Forms 10g et la table resultat contient 2 cases (élément texte) qui sont moyenne et mention.
J'ai créée une vue moyenne qui m'affiche la moyenne generale d'un etudiant grace à son numetud. Elle marche correctement est la moyenne s'affiche dans la colonne moy. Voici la vue:
J'ai créée la fonction mention d'un etudiant. Voici la fonction qui marche correctement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Create view MOYENNE as select e.numetud, e.nom, r.codmod, round(avg(r.note),2) moy from etudiant e, resultat r where e.numetud = r.numetud group by e.numetud, e.nom;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 create or replace function mention (v_numetud number, v_codmod number) return varchar2 is v_moyenne decimal; begin select round(avg(r.note),2) as moy into v_moyenne from resultat r where r.numetud = v_numetud and r.codmod = v_codmod group by r.numetud, r.codmod; if v_moyenne < 10 then return('Ajourne'); end if; if v_moyenne >= 10 and v_moyenne < 12 then return('Passable'); end if; if v_moyenne >= 12 and v_moyenne < 14 then return('Assez bien'); end if; if v_moyenne >= 14 and v_moyenne < 16 then return('Bien'); end if; if v_moyenne >= 16 and v_moyenne < 18 then return('Tres bien'); end if; if v_moyenne >= 18 and v_moyenne < 20 then return('Excellent'); end if; end; /
Mon probleme est le suivant: j'ai créé un bouton "resultat de l'etudiant" et je veux qu'en inserant le numetud de la table resultat et en clickan sur le bouton j'obtienne la suite des infos sur l'etudiant (càdire codmod,codexam,note) ainsi que la moyenne et la mention qui saffiche automatiquement. Dans le code PL/SQL du bouton j'ai mis le script suivant qu'il faut completer:
Quequ'un à t-il une solution svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 begin select numetud, codmod, codexam, note into :resultat.numetud, :resultat.codmod, :resultat.codexam, :resultat.note from resultat where numetud = :resultat.numetud; -- Par la suite je ne sais pas quel procédé utiliser pour faire intervenir la -- moyenne et mention. exception when no_data_found then message('Invalid student id: please enter valid id.'); raise form_trigger_failure; end;
Merci pour votre aide.
Partager