Bonjour à tous,
J'ai un petit soucis que je ne m'explique pas.
Je veux avec une requête, faire un pourcentage de résultat.
Pour cela je fait un Count(visible) pour obtenir le total des lignes en fonction d'un critère de visilité que je divise par un count(visible) global à la requête.
Ex: * (SELECT COUNT(VISIBLE) FROM Stats WHERE VISIBLE = 1 AND SEMAINE=28 AND ANNEE=2006) ==> Résultat avec le critère de visibilité = 3
* COUNT(VISIBLE) ==> Résultat de la requête principale = 8
Le résultat de:
ROUND ((SELECT COUNT(VISIBLE) FROM Stats WHERE VISIBLE = 1 AND SEMAINE=28 AND ANNEE=2006) * 100 / COUNT(VISIBLE), 2) AS Expr1
Devrait donc être ==> 3*100/8 = 37,5 et au lieu de cela j'obtient 37.
J'ai essayer avec et sans le ROUND.
Voila un exemple de requête générer automatiquement:
SELECT { fn CONCAT('S', LTRIM(STR(SEMAINE)))} AS SEMAINE,
ROUND ((SELECT COUNT(VISIBLE) FROM Stats WHERE VISIBLE = 1 AND SEMAINE=28 AND ANNEE=2006) * 100 / COUNT(VISIBLE), 2) AS Expr1,
ROUND ((SELECT COUNT(VISIBLE) FROM Stats WHERE VISIBLE = 2 AND SEMAINE=28 AND ANNEE=2006) * 100 / COUNT(VISIBLE), 2) AS Expr2,
ROUND ((SELECT COUNT(VISIBLE) FROM Stats WHERE VISIBLE = 3 AND SEMAINE=28 AND ANNEE=2006) * 100 / COUNT(VISIBLE), 2) AS Expr3'
FROM Stats WHERE (1 = 1) AND SEMAINE=28 AND ANNEE=2006 GROUP BY SEMAINE, ANNEE
J'ai vraiment besoin d'aide. Je vous remercie d'avance,
Amicalement,
Christophe
Partager