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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Group by selon une liste de valeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Group by selon une liste de valeur

n°1918405
PierreC
Posté le 26-08-2009 à 09:48:39  profilanswer
 

Bonjour à tous
 
  Je cherche (en MySql) à effectuer un GROUP BY sur un champ mais en imposant la liste de valeur sur lequels je veux effectuer le regroupement.
 
Un truc de ce genre :


  SELECT mois, count(client) FROM tbl_mois GROUP BY mois IN (1,2,3,4,5,6,7,8,9,10,11,12)


(le IN ne fonctionnant bien évidement pas à cette endroit)
 
L'idée n'est pas de restreindre à une liste de valeur, mais au contraire de forcer à avoir dans le résultat toutes les valeurs fournit.
 
La seule solution que j'ai pour l'instant est de crée une table de référence sur laquelle je fait un RIGHT JOIN . Mais pour des requête compliqué, ajouté des jointures n'arrange pas les choses. (de plus dans le cas d'utilisation d'un where il faut crée en plus une sous requete)
 
Des idées pour une solution simple à mon problème ?
 


---------------
Du tofu en Alsace : www.tofuhong.com
mood
Publicité
Posté le 26-08-2009 à 09:48:39  profilanswer
 

n°1918507
pataluc
Posté le 26-08-2009 à 12:54:19  profilanswer
 

tu peux nous en dire un peu plus (apercu des données de ta table et de ce que tu veux) parce que la c'est pas très clair...
 
normalement

Code :
  1. SELECT mois, count(client) FROM tbl_mois GROUP BY mois

devrait directement te donner le nombre de client par mois...

n°1918559
PierreC
Posté le 26-08-2009 à 15:12:54  profilanswer
 

avec plaisir :
 
Soit une table tbl_client :  


mois num_cli
1   25    
1   26    
1   29    
2   32    
2   28    
4   69    


 
La requete " SELECT mois, count(num_client) FROM tbl_client GROUP BY mois "
Va me renvoyer


3   1
2   2
1   4


 
Alors que je souhaiterais


3   1
2   2
0   3
1   4
0   5
0   6
0   7
0   8
0   9
0   10
0   11
0   12


 
La question devient t'elle plus clair ?
 


---------------
Du tofu en Alsace : www.tofuhong.com
n°1918580
pataluc
Posté le 26-08-2009 à 16:06:41  profilanswer
 

PierreC a écrit :

La question devient t'elle plus clair ?

 


beaucoup plus! à mon avis la tu n'as pas le choix du coup, tu es obligé de créer une table avec des indices de 1 à 12, et de faire une sous requête ou une jointure...


Message édité par pataluc le 26-08-2009 à 16:06:49

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

  Group by selon une liste de valeur

 

Sujets relatifs
[AS2] liste défilante avec boutons[VBA] Programmer un indicateur coloré en fonction d'une valeur
Group By - Mysql: Comment eviter de faire plusieurs requetes ?Difficulte avec Group By
comment se servir d'une valeur from une autre page?Excel/VB - Valeur cellule de ligne + élevée dans tableau
le plus grand d'une liste (trois tables en jeu)Suppression d'un maillon d'une liste chainée
Recuperer valeur selectionnée JtreeFaire une boucle pour recuperer la valeur de textbox
Plus de sujets relatifs à : Group by selon une liste de valeur


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