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

Requêtes MySQL Discussion :

Problème : COUNT() incorrect


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Problème : COUNT() incorrect
    Bonjour à tous :

    Voici le contexte, je possède une table qui contient les champs suivants :

    ID Date id_type_livre
    1 2014-02-01 1
    2 2014-02-02 1
    3 2014-02-02 1
    4 2014-02-02 3
    5 2014-02-03 2

    "ID" étant une clé primaire et "id_type_livre", une clé étrangère. C'est une table qui regroupe tout les types de livre déposés par jour. (une ligne = un type de livre déposé)
    Ce que j'aimerai faire c'est un module de statistique à partir de cette table et pour se faire, il me faudrait une requête SQL qui me retourne un tableau comme celui ci :

    Date id_type_livre_un Nb_id_type_livre_un id_type_livre_deux Nb_id_type_livre_deux id_type_livre_trois Nb_id_type_livre_trois
    2014-02-01 1 2 2 0 3 1
    2014-02-02 1 1 2 0 3 0
    2014-02-03 1 0 2 1 3 0

    Pour faire bref : c'est un tableau qui compte le nombre de type de livre déposé par date. J'ai commencé par coder la requête ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Select suividepot.date,
     
    s1.id_type_livre as "id_type_livre_un",
    count(s1.id_type_livre) as "Nb_id_type_livre_un",
     
    s2.id_type_livre as "id_type_livre_deux",
    count(s2.id_type_livre) as "Nb_id_type_livre_deux"
     
    s3.id_type_livre as "id_type_livre_trois",
    count(s3.id_type_livre) as "Nb_id_type_livre_trois"
     
    from suividepot, suividepot as s1, suividepot as s2, suividepot as s3
     
    where s1.id_type_livre=1 AND s2.id_type_livre=2 AND s3.id_type_livre=3
     
    group by suividepot.date

    Mais je me retrouve avec ce type de résultat :

    Date id_type_livre_un Nb_id_type_livre_un id_type_livre_deux Nb_id_type_livre_deux id_type_livre_trois Nb_id_type_livre_trois
    2014-06-16 1 28512 2 28512 3 28512
    2014-06-17 1 47520 2 47520 3 47520
    2014-06-18 1 85536 2 85536 3 85536
    2014-06-19 1 57024 2 57024 3 57024
    2014-06-20 1 38016 2 38016 3 38016
    2014-06-23 1 161568 2 161568 3 161568
    2014-06-24 1 76032 2 76032 3 76032
    2014-06-25 1 171072 2 171072 3 171072


    Pour indication, la premier ligne devrait avoir cette valeur :
    Date id_type_livre_un Nb_id_type_livre_un id_type_livre_deux Nb_id_type_livre_deux id_type_livre_trois Nb_id_type_livre_trois
    2014-06-16 1 0 2 0 3 1

    J'ai essayé divers solution comme, par exemple, l'utilisation de JOIN LEFT mais sans succès...

    Avez-vous une idée ?

    Merci d'avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ce que vous cherchez à faire est de la cosmétique. Ce n'est pas le boulot du SGBD mais celui de l'application qui présente les données.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    une requete type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select col_groupement,
    sum(case when ma_cond = 'X' then 1 else 0 end),
    sum(case when ma_cond = 'Y' then 1 else 0 end)
    .....
    from ma_table
    group by col_groupement

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos réponses :
    - Cinephil, vous m'avez appris quelque chose.
    - punkoff, vous m'avez permis d'atteindre ce que je souhaitais.

    Passez une bonne journée,
    Cordialement

Discussions similaires

  1. problème count et group by
    Par zulkifli dans le forum Requêtes
    Réponses: 3
    Dernier message: 24/11/2006, 04h53
  2. [mysql5]problème truncated incorrect double value xx
    Par moulefrite dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 10/11/2006, 17h17
  3. Réponses: 17
    Dernier message: 10/07/2006, 10h52
  4. [XSLT]Problème count()
    Par pancho dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 14/11/2005, 17h00
  5. problème count avec la valeur 0
    Par cristolb dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/07/2005, 09h39

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