thevman
Messages postés83Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention 3 juillet 2008
-
12 juil. 2006 à 10:02
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 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
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 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és83Date d'inscriptionlundi 5 septembre 2005StatutMembreDerniè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.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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é.