leoetevan
109Messages postés
18 février 2009Date d'inscription
7 février 2012Dernière intervention
5 août 2009 à 23:19
Merci déjà d'avoir répondu!
Oui j'en veux encore et tjs!!!
Pour commencer, je précise que je débute une formation de développeur logiciel avec l'AFPA. Les formatteur sont quasi absent et c'est plutôt chaud surtout quand on a jamais fait de prog!!
En fait, je parlais des fonctions en général. J'ai bien compris le principe de base mais je n'arrive pas à mettre en pratique. Je m'explique.
J'ai une table emp(empno number(4), ename varchar2(10), job varchar2(9), sal number(7,2), comm number(7,2), deptno number(2)).
On me demande de créer une fonction permettant de calculer la moyenne pondérée en fonction du departement.
Voilà donc se que j'ai écrit:
create or replace function moyenne_ponderee (dep in number)
return number
is
moy number;
som number;
moypon number;
begin
select sum(a.sal*A) into moy from emp a , (select job, count(*) A from emp group by job) b where a.job=b.job
and a.deptno = dep;
select sum(B*B) into som from (select job,deptno, count(*) B from emp where deptno = dep group by job)
moypon:= moy/som;
return (moypon);
end;
/
Et voilà se que me répond SQL PLUS : Avertissement : Fonction créée avec erreurs de compilation.
Pour finir, tant que je ne mets pas d'attribut a ma fonction, j'arrive à calculer la moyenne pondérée sur l'ensemble des employés. Mais la, vraiment je galère!!
Merci d'avance
PS: Leo et Evan sont les prénoms de mes enfants!! lol