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 pour une requete ... "COUNT(*)"


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Aide pour une requete ... "COUNT(*)"
    J'ai un bon trou de mémoire...

    J'explique mon cas :
    J'ai une table document, la clé primaire correspond à 2 champs (num_doc et seg_doc)
    ex : num_doc seg_doc
    150C156 15
    150C157 20
    150C157 15

    Je souhaite savoir combien j'ai de document num_doc en différent.
    Dans mon exemple on doit trouvé 2 (150C156 et 150C157)

    J'arrive à sortir la liste des num_doc sans pb avec cette requete :
    select num_doc
    from document
    group by num_doc;

    Mais pour les comptés c'est une autre histoire, j'ai essayé de mettre count(num_doc) mais ça me donne le total de num_doc (dans l'ex : 3)

    J'ai essayé de faire une requete imbriqué mais...

    J'ai oublié de préciser ma base de données est sous Access 97.

    Merci d'avance de votre aide

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT num_doc, COUNT(*)
    FROM document
    GROUP BY num_doc
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Points : 65
    Points
    65
    Par défaut Re: Aide pour une requete ...
    aaaa

    Manque juste une touche SUPRESSION

  4. #4
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Points : 65
    Points
    65
    Par défaut Re: Aide pour une requete ...
    1 > Ce type de requete compte tout les documents il est équivalent à Count( * ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select
              count( num_doc )
    from
              document
    ;
    2 > Ce que tu as utilisé te donne éffectivement la liste de tout les num_doc mais ne se justifie que si l'on désire des informations quantifiables sur le groupe ( nombre d'élements , MIN , MAX, SUM )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select
             num_doc
    from 
             document
    group 
             by num_doc
    Il est à remplacer par une formulation plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select
             distinct num_doc
    from 
             document
    => en mixant le 1 et le 2 revisité ont arrive au résultat escompté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select
             count( distinct num_doc )
    from 
             document

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Oops, j'avais pas compris la question
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Losque je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select count( distinct num_doc ) 
    from document;
    Il me met cette erreur : "Erreur de syntaxe (opérateur absent) dans l'expression count( distinct num_doc )"

    Sinon pour la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT num_doc, COUNT(*) 
    FROM document 
    GROUP BY num_doc
    Je l'avais déjà essayé ça me donne la liste des documents regroupé par document et a coté le nombre de document de ce type:
    (par rapport a mon exemple : 150C156 : 1 & 150C157 : 2)

  7. #7
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par mechantebestiole
    Sinon pour la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT num_doc, COUNT(*) 
    FROM document 
    GROUP BY num_doc
    Je l'avais déjà essayé ça me donne la liste des documents regroupé par document et a coté le nombre de document de ce type:
    (par rapport a mon exemple : 150C156 : 1 & 150C157 : 2)
    C'est normal, c'est ce qu'on lui demande de faire :
    Nombre d'occurences par groupe, l'unité de groupe étant num_doc.

    Si ton SGBD n'accepte pas les COUNT( DISTINCT XXXX ), autre solution plus élaborée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Select
              count( * )
    from
            ( select
                        distinct num_doc
              from
                        document )
            ) as a
    ;

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Si ton SGBD n'accepte pas les COUNT( DISTINCT XXXX ), autre solution plus élaborée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select 
              count( * ) 
    from 
            ( select 
                        distinct num_doc 
              from 
                        document ) 
            ) as a 
    ;
    Je viens d'essayer cette solution mais ça me met erreur de syntaxe dans la clause FROM. Je pense que ça vient du premier FROM...

  9. #9
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 103
    Points : 87
    Points
    87
    Par défaut
    je pense que le distinct devrait marcher en mettant des parentheses et pas d'espace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(distinct(num_doc))

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    ça ne fonctionne pas même sans espaces :-(

  11. #11
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Peut-on compter dans une requete le nombre de lignes de celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT num_doc
    FROM document;
    Merci de votre aide

  12. #12
    Tan
    Tan est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 168
    Points : 158
    Points
    158
    Par défaut
    La méthode de papounet marche bine, il y a juste une parenthèse en trop.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Select 
              count( * ) 
    from 
            ( select 
                        distinct num_doc 
              from 
                        document 
            ) as a 
    ;

  13. #13
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    ça doit être access 97 qui n'accepte pas ces requetes car ça ne marche toujours pas...
    Si quelqu'un a une autre méthode qui fonctionne avec access 97...

    merci tout de même pour tout vos posts

  14. #14
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    J'ai trouvé une solution plus rapide je fais une requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct num_doc from document;
    Ensuite je l'integre dans un module et je compte le nombre de ligne du recordset avec la propriété recordcount...

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

Discussions similaires

  1. Besoin d'aide pour une requete
    Par jnc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 11h54
  2. aide pour une requete
    Par graphicsxp dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/03/2005, 15h02
  3. Aide pour une requete SQL
    Par hpghost dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/01/2005, 15h01
  4. Aide pour une requete SQL
    Par hpghost dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 08/01/2005, 10h15

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