Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tri de résultats d'une requête

    2 mars 2012 à 9:30:08

    Bonjour à tous,

    je travaille actuellement sur un système de statistiques effectués dans le cadre d'un module web.

    Une table erreurs permets de stocker des erreurs effectués sur des commandes.

    une table erreurs_stats permets de stocker par erreurs les initiales par zone de préparation, voici ma table erreurs_stats

    CREATE TABLE `erreurs_stats` (
      `id` int(5) NOT NULL AUTO_INCREMENT,
      `zone1` varchar(255) NOT NULL,
      `zone2` varchar(255) NOT NULL,
      `zone3` varchar(255) NOT NULL,
      `erreurs_id` int(10) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    


    Voici deux entrées de ma table erreurs_stats que j'avais inséré pour effectuer des tests:

    id 	zone1 	zone2 	zone3 	erreurs_id
    1 	Ben 	Patrick Brigitte 102
    2 	Natacha Ben 	Marie 	 105
    


    j'aimerai maintenant afficher le nombre d'erreurs par initiales comme ceci:

    Ben: 2
    Patrick: 1
    Brigitte: 1
    Natacha: 1
    Marie: 1

    Voici ma requête:
    SELECT DISTINCT  zone1, zone2, zone3, count(erreurs_id) as compteur FROM erreurs_stats GROUP BY zone1, zone2, zone3
    


    Au final j'ai deux lignes & j'ai "Ben" qui apparait deux fois :s.

    Je fais appel à votre pour savoir si vous avez décider comment trier ces données pour ne pas avoir de redondance d'initiales. Au final ces données seront afficher en php.

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2012 à 9:59:05

      Salut,
      Ton modèle est faux...
      Tu es complètement dénormalisé, et tu vas au devant de problèmes de gestion.
      Ta table devrait avoir simplement un id, un nom (un seul!!), et un code d'erreur.
      et tes enregistrements du type:
      1;Ben;102
      2;Patrick;102
      3;Brigitte;102
      4;Natacha;103
      5;Ben;103
      etc etc..

      Et ta requète se simplifiera énormément:
      select nom,count(*) from 'erreurs_stats' group by nom
      
      • Partager sur Facebook
      • Partager sur Twitter

      Tri de résultats d'une requête

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown