Procedure calcule le AVG

Résolu
midomaroc Messages postés 8 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 27 septembre 2010 - 19 oct. 2008 à 18:10
crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011 - 26 oct. 2008 à 20:24
Bonjours a tous le monde
j'essei de créer une procédure stockée qui sert à calculer la moyenne géneral de tous les salaire en utilisant a surseur qui vas calculer le compter le nombre des salariés et sommer les salaires de ces derniers
je met a votre connaissance que je suis débutant en proc stockées
voila ma table que je travaille avec
create table Salarié(   NumSal int identity(1,1)primary key,
                                 Nom varchar(50),
                                 Prenom varchar(50),
                                 Salaire numeric)
passant maintenant a ce ke j'ai fait :
create proc calcul_avg as
          declare @NumSal int
          declare @Salaire numeric
          declare mycursor cursor for select NumSal, Salaire  from salarie
          open mycursor
          fetch mycursor into @NumSal, @Salaire
          declare @comp int
          declare @avg numeric
          while @@fetch_status = 0
                     begin                               set @Salaire @Salaire +( select Salaire from salarie where NumSal @NumSal)
                               set @comp = @comp + 1
                     end
                     fetch mycursor into @NumSal, @Salaire
                     set @avg = @Salaire / @comp
                     print 'la moyenne géneral est de: [mailto:'+@avg '+@avg]
               exec calcul_avg


Le probléme se pose au nivau de l'execution car ma proc s'execute mais son résultat ne saffiche pas
a vous maintenant de me proposer des solutions
et merci d'avance

3 réponses

crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011
20 oct. 2008 à 11:08
je vois pa pourquoi tu passes par une proc pour faire ton avg

un "SELECT AVG(salaire) FROM Salarié" suffirai!!
3
midomaroc Messages postés 8 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 27 septembre 2010
24 oct. 2008 à 00:26
merci de votre réponse
ce que vs venez de dire je le conné déja mais j'essei de créer ma propre procédure, c'est comme ca que je vais améliorer mé conpétences; ou bien non ?
si vous avez une autres proposition, remarque, correction... 
et merci une 2eme fois
0
crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011
26 oct. 2008 à 20:24
3 choses à redire alors:


A mon avis un

"Declare @Avg Float" serai mieux 

"print 'la moyenne géneral est de: [mailto:varchar@avg '+convert(varchar,@avg])" afficherai le résultat

"declare mycursor cursor local Fast_forward" améliorera la rapidité d'exécution

Courage!
0
Rejoignez-nous