Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1128 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  utilisation d'une SUM de plusieurs COUNT

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utilisation d'une SUM de plusieurs COUNT

n°2143381
scribou
Posté le 23-05-2012 à 09:55:11  profilanswer
 

Bonjour à tous,
Malgré de nombreuses lectures sur l'utilisation de la fonction SUM je ne parviens pas à utiliser ma variable afin d'afficher le résultats de la requète.
Pas très clair tout ça ...
J'effectue une requète SQL qui fait une SUM de plusieurs COUNT (comme indiqué dans le titre) et une variable AS est attribuée à la fin de la fonction.
J'aimerai afficher le résultat mais je sais pas comment faire ...
 
Voici le code que j'ai pour la requète :

Code :
  1. $requete = "SELECT SUM(nature) FROM(
  2.   SELECT *,  COUNT(nature) AS nbNature FROM `eanantes` GROUP BY nature UNION ALL
  3.   SELECT *,  COUNT(nature) AS nbNature FROM `earouen` GROUP BY nature UNION ALL
  4.   SELECT *,  COUNT(nature) AS nbNature FROM `ealille` GROUP BY nature UNION ALL
  5.   SELECT *,  COUNT(nature) AS nbNature FROM `ealondres` GROUP BY nature UNION ALL
  6.   SELECT *,  COUNT(nature) AS nbNature FROM `eanancy` GROUP BY nature ORDER BY nature)AS sommeNature";


 
 
Ensuite je voudrais afficher le résultats obtenu dans sommeNature dans un tableau en php du style :
 

Code :
  1. echo"<tr class=\"$trClasse\">
  2. <td>$data[nature]</td>
  3. <td>$sommeNature</td>
  4. </tr>";


 
Evidemment ceci ne marche pas
 
Pour le moment j'ai un tableau où j'ai plusieurs lignes avec plusieurs fois la même chose avec un résultat count différent et j'aimerai que la donnée qui se répète avec un résultat différent n'apparaisse qu'une fois avec la somme de tous les count. Je ne sais pas si c'est clair :/ en tout cas voici le code de ce que j'ai actuellement:
 

Code :
  1. $requete ="SELECT *,  COUNT(nature) AS nbNature FROM `eanantes` GROUP BY nature UNION ALL
  2.  SELECT *,  COUNT(nature) AS nbNature FROM `earouen` GROUP BY nature UNION ALL
  3.  SELECT *,  COUNT(nature) AS nbNature FROM `ealille` GROUP BY nature UNION ALL
  4.  SELECT *,  COUNT(nature) AS nbNature FROM `ealondres` GROUP BY nature UNION ALL
  5.  SELECT *,  COUNT(nature) AS nbNature FROM `eanancy` GROUP BY nature ORDER BY nature";//)AS sommeNature";
  6. $req = mysql_query($requete) or die(mysql_error());
  7. $i=0;
  8. while($data = mysql_fetch_assoc($req))
  9. {
  10. if($i%2==0)
  11. {   //affichage du tableau, fait appel au design "tab1" si le nombre i est pair
  12.  $trClasse="tab1";
  13. }
  14. else
  15. {
  16.  $trClasse="tab2";
  17. }
  18. echo"
  19. <tr class=\"$trClasse\">
  20.  <td>$data[nature]</td>
  21.  <td>$data[nbNature]</td>
  22. </tr>";
  23. $i=$i+1;
  24. }


mood
Publicité
Posté le 23-05-2012 à 09:55:11  profilanswer
 

n°2143385
flo850
moi je
Posté le 23-05-2012 à 10:21:08  profilanswer
 

C'est vraiment pas le truc à faire en SQL : tu as 5 requetes qui n'ont aucun rapport , pourquoi vouloir tout faire en une fois ?


---------------

n°2143390
scribou
Posté le 23-05-2012 à 10:39:07  profilanswer
 

Ben je voudrais additionner les count où chaque "nature" à le même nom.
Par exemple si la nature (ici on parle de la nature d'un problème)
a été la communication 5 fois à rouen et 2 fois a nantes,  
je voudrais pouvoir afficher qu'elle a été la nature du problème 7 fois en tout.

n°2144139
scribou
Posté le 31-05-2012 à 09:39:14  profilanswer
 

Hmmm vu le nombre hallucinante de solutions dois-je supposer qu'il n'y en à pas ? :/

n°2144140
flo850
moi je
Posté le 31-05-2012 à 09:40:34  profilanswer
 

disons que tu as vrai problème de structure de base de données
pourquoi créer une table par ville, plutôt que d'ajouter une colonne ville dans ta table ?


---------------

n°2144178
scribou
Posté le 31-05-2012 à 16:28:31  profilanswer
 

Oui j'ai bien compris le probème et je m'en étais rendu compte mais malheureusement il est "trop tard" pour tout rechanger, ça entrainerait beaucoup de modifications dans mes pages php et il y aurait le risque de nombreuses erreurs dans les pages actuellement en marche. Et je n'ai pas vraiment le temps de tout rechanger :/
C'est pour ça que j'espérais trouver une solution sur ce forum :s

n°2144202
mrbebert
Posté le 31-05-2012 à 19:56:19  profilanswer
 

La requête

SELECT *,  COUNT(nature) AS nbNature FROM `eanantes` GROUP BY nature UNION ALL

renvoie une colonne nommée "nbNature", c'est celle-ci qu'il faut utiliser :

Code :
  1. $requete = "SELECT SUM(nbNature) FROM(
  2.   SELECT *,  COUNT(nature) AS nbNature FROM `eanantes` GROUP BY nature UNION ALL
  3.   SELECT *,  COUNT(nature) AS nbNature FROM `earouen` GROUP BY nature UNION ALL
  4.   SELECT *,  COUNT(nature) AS nbNature FROM `ealille` GROUP BY nature UNION ALL
  5.   SELECT *,  COUNT(nature) AS nbNature FROM `ealondres` GROUP BY nature UNION ALL
  6.   SELECT *,  COUNT(nature) AS nbNature FROM `eanancy` GROUP BY nature ORDER BY nature)AS sommeNature";


Message édité par mrbebert le 31-05-2012 à 19:57:01

---------------
Doucement le matin, pas trop vite le soir.
n°2144272
scribou
Posté le 01-06-2012 à 11:37:36  profilanswer
 

Oui je comprend le bien la chose à faire mais je ne vois pas comment afficher la variable nbNature obtenue afin de la mettre dans un tableau en php :/
 
En tout cas merci d'essayer de m'aider ^^'

n°2144286
mrbebert
Posté le 01-06-2012 à 13:25:32  profilanswer
 

Comme n'importe quel résultat de requête :??:
 
$requete = "SELECT SUM(nbNature) sum_nature FROM( ...
...
$req = mysql_query($requete)
...
$data = mysql_fetch_assoc($req)
 
echo $data['sum_nature']


---------------
Doucement le matin, pas trop vite le soir.
n°2144291
scribou
Posté le 01-06-2012 à 13:38:57  profilanswer
 

Oui merci je ne sais pas pourquoi j'essayais de réutiliser sommeNature comme un idiot ...
Ca marche parfaitement maintenant.  
Merci beaucoup ! =)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  utilisation d'une SUM de plusieurs COUNT

 

Sujets relatifs
Combox qui influence plusieurs autres framesFusionner plusieurs fichiers CVS un seul fichier excel
Utilisation d'une DLL pour intégration à 4D[Résolu] [KSH] Executer plusieurs commandes dans une variable
[VB.NET] Instancier un formulaire plusieurs fois [Résolu]Exécuter plusieurs macros Excel
[ORACLE] Fragmenter une journée sur plusieurs lignesOu déclarer une class qui va servir à plusieurs endroits ?
créer un tableau php avec tri et plusieurs tables...SUM et GROUP BY ?
Plus de sujets relatifs à : utilisation d'une SUM de plusieurs COUNT


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR