Extraire le nombre de fois un mot est répété dans une colonne suivant les mois d

Signaler
Messages postés
48
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
3 janvier 2015
-
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
-
bonjour tout le monde
je suis nouveau en vb 2008.
j'ai une table qui s'appelle TAb. et j'ai plusieurs colonnes ou il y a des informations. j'ai voulu faire des statistiques.
une colonne nom et une autre mois .
mon but c'est avoir un tableau qui m'affiche dans une colonne les noms et dans les 12 colonnes (mois de l'année)les nombres de fois chaque nom est répété dans ma base.
j'ai trouvé sur d'autre forum qu'il faut utiliser count case when .mais je n'arrive pas à l'adapter à ma base .
voila ma base :
colonneNom ColonneMois
bernard janvier
alain mars
xavier janvier
bernard février

ma base contient environ 30000 lignes.

je voulais un résultat qui ressemble à ceci:

colonneNom ColonneJanvier ColonneFévrier ......
bernard 1 1
xavier 1 0
etc........

Pouvez vous m'aider.

10 réponses

Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Bonjour,

Je n'ai pas tester mais je verrais quelque chose comme ça:

SELECT DISTINCT ColonneNom, ColonneMois GROUP BY ColonneMois.

A vérifier


Calade
Messages postés
48
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
3 janvier 2015

je vous remercie pour votre aide.
Mais ca ne fonctionne pas . en fait je voulait un résultat sous forme d'un tableau
1ere colonne : liste des noms
de 2 au 12 eme colonne : liste des mois avec devant chaque nom le nombre de fois répété par mois .
voilà un exemple:
janvier février mars avril

Bernard 0 1 2 0
Xavier 1 0 0 1
etc 2 1 0 0
je vous remercie
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Ca ne fonctionne pas ne veut rien dire.

As-tu une erreur et laquelle, ou ?
Ou seulement les résultats ne sont pas ceux que tu attends, alors qu’obtiens-tu ?


Calade
Messages postés
48
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
3 janvier 2015

salut Calade
"en fait les résultats ne sont pas ceux que j' attendais.
je t'explique autrement.
voici ma base (datagrid)il y a 2 colonnes nom et mois
[list]
Nom Mois
bernard janvier
xavier janvier
bernard mars
xavier mars
/list
voici la requete que je voulais(datagrid) il y a 13 colonnes nom et les mois de l'année
[list]
nom janvier février mars
bernard 1 0 1
xavier 1 0 1
/list

je voulait te faire avec des images , mais je ne sais pas comment inserer une image avec le message . ca ne marche pas .
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Bonjour,

Je vois ce que tu veux dire. Malheureusement je n'ai pas trop le temps de me pencher là dessus.

Je ne connais pas ton SGBD, mais si c'est SQL Server ou Access , cela s'appelle des tableaux croisés dynamiques. Regarde ton aide à ce terme. L'exemple (pour SQL Server) me parait assez clair.

En gros tu vas créer on the fly une table virtuelle qui sera le reflet de ta requête mais pivoté. A toi de lui précisé quel champ tu veux en colonne.

Des clauses utiles pourraient être aussi:

GROUP BY ou GROUPING (ce sont 2 clauses différentes pour regrouper tous les mois de même valeur ensemble.
Tu pourrais avoir aussi besoin des clauses CUBE et ROLLUP, pour ces deux là fais particulièrement attention aux valeurs nulles (si tu en as) dans chacune des colonnes SELECTées).

En tout cas, bonne chance.
Je n'ai jamais essayé ce genre de choses mais si tu as des problèmes reviens ici en postant ta requête.

Quel SGBD utilises-tu ?


Calade
Messages postés
48
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
3 janvier 2015

Bonjour,
j'utilise une table access qui groupe environ 20 colonnes.
En fait ma base existe depuis 2 ans sous excel . et elle fonctionne parfaitement en utilisant des formules tels que BDSOMME , Sommesi ..... .
En début d'année ai commencé à découvrir les BD en vb 2008. et je trouve que c'est mille fois mieux que excel au niveau rapidité et présentation des statistiques.
Vu ton message je pense que je vais abondonner le projet que j'ai passé des heures et des heures à le préparer car j'en connais trés trés peu en SQL.
En cherchant un peu j'ai trouvé avec Count(*) comment afficher un seul mois ce qui veut dire 12 codes et 12 datagrids multiplier tout ca par le nombres des colonnes. c'est énorme pour une année. c'est pour ça j'ai voulu tout afficher d'un seul coup ( ca me permettra de faire des comparaison directement entre les mois ).
je sais que certaines personnes utilisent Count(case ... When Else End), mais c'est trop dur pour un débutant comme moi de l'adapter avec ma base.
je te remercie beaucoup pour ton aide.
je vais essayer de trouver une autre méthode , sinon je vais laisser tomber.
A+ bonne journée à toi.
je te tiendrai au courant si j'ai des nouvelles.
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Laisse pas tomber comme ça.
Regarde l'aide d'Access sur les tableaux croisés dynamiques. Ils sont moins puissants que ceux d'Excel mais suffisants pour ce que tu veux faire.

De plus, si mes souvenirs sont bons, il y a un assistant dans Access pour ça.


Calade
Messages postés
48
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
3 janvier 2015

merci je vais regarder.
je te tiens au courant.
a+
Messages postés
48
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
3 janvier 2015

salut calade
je te remercie beaucoup pour ton aide.Effectivement aprés une recherche j'ai réussi à faire un tableau croisé dynamique depuis ma base .en fait c'est le tableau que je veux . Reste une chose c'est comme l'afficher dans une datagridview. Peux tu m'aider s'il te plaît. Merci d'avance.
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Bonjour,

Content que tu aies réussi.
Malheureusement j'ai peur que mes compétences s'arrêtent là. Comme je te l'ai dit je ne connais pas .NET et son DataGridView.

Par rapport à son homologue VB6 MSHFlexGrid, j'aurais tendance à dire que oui, mais sans preuve.

A toi de piocher dans la doc' où a chercher sur ce site, sur Google ou éventuellement sur ce site (en anglais désolé).

Calade