Pourcentage pbl

thevman Messages postés 83 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 3 juillet 2008 - 12 juil. 2006 à 10:02
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 12 juil. 2006 à 13:49
bonjour,
j'aimerai afficher le pourcentage grace a une requete,
le problème c 'est que je ne sais pas comment recuperer ma collonne.

Actuellement j'ai cette requete simple :
select table1.NOM as nom, count(table1.NUMERO) as NbrDeNom
from  table1,table2,table3,table4
where .... ...... ... .. .. . .. . .
group by table1.NOM;

nom         NbrDeNom
toto         2
tata         2
dupuis      16

jusque la pa de pb
maintenant je voudrai pouvoir faire les pourcentages en meme tmps dans ma requete
si on le fait en statique ca donnerai ca :

select table1.NOM as nom, count(table1.NUMERO) as NbrDeNom, ((count(table1.NUMERO)/20)*100) as pourcentage

from  table1

where .... ...... ... .. .. . .. . .

group by table1.NOM;

nom         NbrDeNom     pourcentage

toto         2                        10

tata         2                         10

dupuis     16                       80

Mais j'aimerai au lieu d'avoir 20 en dure dans ma requete trouver la solution pour recuperer la somme de la collonne NbrDeNom sachant que j'aimerai eviter de faire un select vu que la requete pr recuperer mes informations  est pleine de jointure

merci da vance
 Nare Trouvé !!!

3 réponses

cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 4
12 juil. 2006 à 12:00
Essai avec une sous requette :
select 
   table1.NOM as nom, 
   count(table1.NUMERO) as NbrDeNom, 
   ((count(table1.NUMERO)/(
      SELECT
         SUM(NUMERO)
      FROM
         table1
      where 
         .... ...... ... .. .. . .. . .
   ))*100) as pourcentage
from  
   table1
where 
   .... ...... ... .. .. . .. . .
group by 
   table1.NOM;

Les clauses where doivent être identique pour pourvoir faire ub pourcentage sur les eléments de la requette ou alors tu peux supprimer le where de la sous requette si tu veux des pourcentage incluant les canps non selectionner.
thevman Messages postés 83 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 3 juillet 2008
12 juil. 2006 à 12:42
le probléme de cette technique c'est que tu refait deux fois la meme requete.... c pour ca que je cherchais une autre solution.
Je pense que je vais passer par une vue mais bon si quelqu'un connait l'astuce je suis preneur.

 Nare Trouvé !!!
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 36
12 juil. 2006 à 13:49
Salut,

Une autre maniere est de passer peut être par une procedure stockee

qui fait le select count
et apres execute le resultat avec la variable

tu executes la chaine de caractere
en sql server
on peut faire
execute "ma chaine sql " + variable + " fin chaine sql"

sinon il est peut etre possible d'utiliser une varaible systeme
exemple rowcount en sqlserveur
mais jene sais pas si cela fonctionne en sqlserveur ou en oracle
car je ne sais pas quand la variable est valorisé.

J'espere que ces idées peuvent d'aider.

voila
Rejoignez-nous