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

Langage SQL Discussion :

Aide Requete comptage


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 20
    Points
    20
    Par défaut Aide Requete comptage
    Bonjour,

    Je souhaite faire une requête qui me renvoie le nombre de Notes équivalent à A, B et C (donc 3 totaux en tout) par mois

    Table1
    ID, Dates , Note

    J'ai un problème avec ma requête
    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
      (Format([Dates],"mmm"" '""yy")) AS Mois, 
      (SELECT count(*) AS NbA 
                  FROM Table1 
                  WHERE Note = 'A'  ;
       ) AS A, 
       (SELECT count(*) AS NbB 
                   FROM Table1 
                   WHERE Note = 'B'  ; 
       ) AS B, 
       (SELECT count(*) AS NbC
                   FROM Table1
                   WHERE Note = 'C' ;
       ) AS 100
    FROM Table1
    GROUP BY (Format([Dates],"mmm"" '""yy"));
    Evidement, ça ne me donne pas ce que j'attendais.
    voici le résultat obtenu
    Mois A B C
    janv '08 0 3 1
    oct '08 0 3 1

    Or je souhaiterais obtenir
    Mois A B C
    janv '08 0 3 0
    oct '08 0 0 1

    Pouvez-vous m'aider ?

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Format([Dates]
    C'est de l'Access ça non ?

    De plus, ce que vous cherchez à faire est de la cosmétique et n'est pas le boulot du SGBD.
    Normalement, en langage SQL standard, on ferait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT EXTRACT(MONTH FROM Dates) AS Mois, EXTRACT(YEAR FROM Dates) AS Année, Note, COUNT(*)
    FROM Table1
    GROUP BY EXTRACT(YEAR FROM Dates), EXTRACT(MONTH FROM Dates), Note
    Pour répondre à votre besoin cosmétique, vous pouvez essayer (toujours en SQL standard) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT EXTRACT(MONTH FROM Dates) AS Mois, EXTRACT(YEAR FROM Dates) AS Année,  
    	CASE
    		WHEN Note = 'A' THEN COUNT(*)
    	END AS A,
    	CASE
    		WHEN Note = 'B' THEN COUNT(*)
    	END AS B,
    	CASE
    		WHEN Note = 'C' THEN COUNT(*)
    	END AS C
    FROM Table1
    GROUP BY EXTRACT(YEAR FROM Dates), EXTRACT(MONTH FROM Dates)
    Mais reconnaissez que la première requête est plus courte que la deuxième non ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 20
    Points
    20
    Par défaut
    Oui c'est de l'access, en fait je réalise des graphiques, la feuille de données est remplie à partir d'une requête.
    Le problème que je rencontre, c'est je voudrais associer une couleur à chaque légende.
    Par exemple Rouge pour les notes A , Vert = B et Bleu = C
    Mais le problème est que si je n'ai aucune note A, les couleurs seront décalés et ne correspondront plus à ce que j'attendais.


    Il est vrai que j'ai fait du cosmétique...

    Cependant, il faut absolument que cette requête me renvoie 4 colonnes (Mois, NoteA , B et C)

    Le problème c'est qu'avec cette requete si jamais, il n'y a aucune note A, elle n'apparaitra pas dans mes colonnes. Or je souhaiterais qu'elle soit présente avec une valeur de 0 dans ce cas.
    D'où mon bidouillage...

  4. #4
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par peruvio Voir le message
    Cependant, il faut absolument que cette requête me renvoie 4 colonnes (Mois, NoteA , B et C)

    Le problème c'est qu'avec cette requête si jamais, il n'y a aucune note A, elle n'apparaitra pas dans mes colonnes. Or je souhaiterais qu'elle soit présente avec une valeur de 0 dans ce cas.
    Je pense que ma seconde requête répond justement à ce besoin. Les colonnes A, B et C existeront toujours et le COUNT(*) donnera 0 s'il n'y a pas de note d'un certain type.

    Maintenant, est-ce que Access acceptera ce SQL standard ? C'est une autre histoire !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 20
    Points
    20
    Par défaut
    je vais essayer de me débrouiller avec ça

    En tout cas merci

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

Discussions similaires

  1. [AIDE] Requete de comptage
    Par Diablo_22 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/10/2008, 13h26
  2. [MySQL] requete comptage
    Par le69 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/11/2005, 15h54
  3. besoin d'aide -> requete sur 2 tables avec count()
    Par parksto dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/10/2005, 20h06
  4. Besoin d'aide requete sql
    Par dinde dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/10/2005, 10h09
  5. [Aide requete SQL]
    Par viny dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 22/04/2005, 18h00

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