IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requete SELECT Help [Fait] [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Par défaut Requete SELECT Help
    Bonjour,

    Voici ma table de base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    +--------+---------------------+-------------+
    | tco_id |       tco_date      | tco_couleur |
    +--------+---------------------+-------------+
    |    1   | 2006-01-15 10:10:10 |   bleu      |
    |    2   | 2006-01-15 11:11:11 |   rouge     |
    |    3   | 2006-01-15 03:03:03 |   bleu      |
    |    4   | 2006-01-15 05:05:05 |   jaune     |
    |    5   | 2007-02-15 08:08:08 |   jaune     |
    |    6   | 2007-02-15 09:09:09 |   rouge     |
    +--------+---------------------+-------------+
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE `t_couleurs_tco` (
      `TCO_ID` int(10) unsigned NOT NULL auto_increment,
      `TCO_DATE` datetime NOT NULL default '0000-00-00 00:00:00',
      `TCO_COULEUR` tinytext NOT NULL,
      PRIMARY KEY  (`TCO_ID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
     
    INSERT INTO `t_couleurs_tco` VALUES (1, '2006-01-15 10:10:10', 'bleu');
    INSERT INTO `t_couleurs_tco` VALUES (2, '2006-01-15 11:11:11', 'rouge');
    INSERT INTO `t_couleurs_tco` VALUES (3, '2006-01-15 03:03:03', 'bleu');
    INSERT INTO `t_couleurs_tco` VALUES (4, '2006-01-15 05:05:05', 'jaune');
    INSERT INTO `t_couleurs_tco` VALUES (5, '2007-02-15 08:08:08', 'jaune');
    INSERT INTO `t_couleurs_tco` VALUES (6, '2007-02-15 09:09:09', 'rouge');
    Et ce que j'aimerais obtenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    +------------+-------------+-------------+------------+
    |     DATE   | TOTAL_JAUNE | TOTAL_ROUGE | TOTAL_BLEU |
    +------------+-------------+-------------+------------+
    | 2007-02-15 |      1      |      1      |      0     |
    | 2006-01-15 |      1      |      1      |      2     |
    +------------+-------------+-------------+------------+
    J'ai essayé moult choses sans succès, ma base étant quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 
          DATE( TCO_DATE )  AS DATE,
          COUNT( 1 ) AS TOTAL_JAUNE,
          COUNT( 1 ) AS TOTAL_ROUGE,
          COUNT( 1 ) AS TOTAL_BLEU
    FROM 
          t_couleurs_tco
    GROUP BY 
          DATE( TCO_DATE )
    ORDER BY
          TCO_DATE DESC
    Voilà, merci aux âmes charitable qui voudront bien me filer un petit coup de main ...
    Félix.

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select count(tco_couleurs)) as nb_jaune 
    FROM 
          t_couleurs_tco
    GROUP BY 
          DATE( TCO_DATE )
    HAVING tco_couleurs = 'jaune' 
    ORDER BY
          TCO_DATE DESC
    Déjà pour un seul et là c'est sur que tu as les bonnes valeurs...
    Maintenant faire une seul requete pour avoir tous les count ...

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Quelque chose approchant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select date_format(tco_date, '%Y-%m-%d') as jour, tco_couleur, count(tco_couleur) as nb
    from t_couleurs_tco
    group by date_format(tco_date, '%Y-%m-%d'), tco_couleur
    order by jour desc
    donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    2007-02-15	jaune	1
    2007-02-15	rouge	1
    2006-01-15	bleu	2
    2006-01-15	jaune	1
    2006-01-15	rouge	1
    Ensuite, tu fais la mise en forme avec php.

    J'ai utilisé 'date_format()', car ma version de mysql n'a pas la fonction 'date()'.

  4. #4
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    Un tutoriel sur la méthode du pivot va bientôt être publié par Fadace. Pour l'instant il est en phase de relecture par l'équipe de rédaction SGBD. Il concerne le moteur MSSQL SERVER, mais il détaille chaque étape, et vous pourrez l'adapter .
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  5. #5
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    Et voilà : Tutoriel : Les requêtes pivots avec Microsoft SQL-Server, par Fabien Celaia
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Par défaut
    Merci Jeca pour ta réponse qui, si elle ne correspondait pas exactement à ce que je voulais, m'a néanmoins encouragé à perserverer...

    Voici donc la chose (en une passe) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT 
          DATE( TCO_DATE )  AS DATE,
          SUM( IF (TCO_COULEUR = 'jaune',1,0) ) AS TOTAL_JAUNE,
          SUM( IF (TCO_COULEUR = 'rouge',1,0) ) AS TOTAL_ROUGE,
          SUM( IF (TCO_COULEUR = 'bleu', 1,0) ) AS TOTAL_BLEU
    FROM 
          t_couleurs_tco
    GROUP BY 
          DATE( TCO_DATE )
    ORDER BY
          TCO_DATE DESC
    a+
    Félix.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQL server 7.0 requete select
    Par sangokus dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/03/2004, 11h09
  2. pbl delphi requete SELECT
    Par Rico l'abricot dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/02/2004, 09h15
  3. Requete select pour récupérer les no match entre 2 tables
    Par Celina dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/12/2003, 11h59
  4. problemes de performances avec les requetes select
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/07/2003, 13h39
  5. requete SELECT avec un nombre constant
    Par gurumeditation dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/07/2003, 20h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo