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
Rejoignez-nous