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:
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;
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
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:
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;
Quequ'un à t-il une solution svp ?

Merci pour votre aide.