Calcul de pourcentage.

AUZUR
Messages postés
30
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
2 novembre 2009
- 30 oct. 2009 à 11:52
pradiergael
Messages postés
13
Date d'inscription
jeudi 7 mai 2009
Statut
Membre
Dernière intervention
11 décembre 2011
- 1 déc. 2011 à 18:33
Bonjour à tous,
voila, j'ai un problème avec une requète SQL, sur SQLServer.

J'ai une table TabReg(NomRegion, CAreg, Population) avec laquelle, j'aimerais calculer le pourcentage des ventes réalisé dans tel ou tel région sur le total des ventes.
Que le tout soit calculé et insérer dans une nouvelle colonne que je vais créer dan TabReg.

J'ai tester cela:
SELECT NomRegion,SUM(TabReg.CAreg) * 100 / Tot.CAreg
FROM TabReg ,  
 (SELECT SUM(CAreg)
   FROM  TabReg)AS Tot
 
GROUP BY TabReg.NomRegion





mais ça ne marche pas, il le dit qu'il n'y a aucune colonne de spécifier pour la colonne 1 de Tot ?!?

Puis j'ai tester ça:

SELECT NomRegion, 
       CAST((SELECT SUM(CAreg)
              FROM  TabReg  
              WHERE NomRegion = T.NomRegion) AS FLOAT) * 100.0 / CAreg
FROM   TabReg AS T
GROUP  BY NomRegion


Mais pas mieux, il me dit que T.CAreg n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.




Bref merci à ceux qui pourrons m'aider.

4 réponses

PascalCmoa
Messages postés
239
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
17 janvier 2013
5
30 oct. 2009 à 15:25
Bonjour,

Si je comprends bien, cette requete se fait sur la même table.
Personnellement, je ferai comme suit:

select
NomRegion
,cast(sum(CAreg) as float) * 100.0 / float(CAreg as float) as Total
from TabReg
group by NomRegion, CAreg


Je pense que cela doit fonctionner.

a+

PascalCmoa
email: PascalCmoa
0