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

Access Discussion :

[TUTO] Les requêtes avec regroupement


Sujet :

Access

  1. #1
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut [TUTO] Les requêtes avec regroupement
    Bonjour à tous,

    je vous propose un premier article Access.

    Les requêtes avec regroupement
    Opérations « Compte » et « Somme »

    Cet article se propose de faire découvrir les requêtes avec regroupement sous Access pour effectuer des opérations élémentaires et fréquentes de comptage et d'addition. L'approche se veut didactique et progressive. On commence par découvrir le principe en utilisant exclusivement l'interface graphique avant d'aborder des cas plus complexes et le langage de requête SQL sous-jacent.
    L’article s’adresse plutôt aux débutants mais les habitués y trouveront peut-être quelques astuces.

    Vous pouvez évidemment poster vos commentaires dans ce fil.

    Bonne lecture

    Fabien

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Salut Fabien,

    Bravo pour ce très beau tutoriel.
    Vivement la suite que tu y annonces !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut
    Merci Claude

    Pour la suite, on va attendre que je reprenne mon souffle après cet accouchement

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonsoir Fabien,

    Et chapeau (ou bonnet, comme tu veux, mais ça sonne moins bien)!... ...

    Au passage, un petit salut amical à Claude.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Content de te recroiser Richard !

    Bonne journée.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 004
    Points : 24 595
    Points
    24 595
    Par défaut
    un smilé suffit...

    Si après cela il y a encore des questions basiques c'est que les gens ne lisent pas.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Chouette boulot Fabien, content de te compter parmi les rédacteurs.

    Ce tutoriel explique pas à pas comment regrouper les données et les exemples sont clairs.

    Nul doute que cela ouvrira des horizons nouveaux.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut
    Merci à tous pour vos encouragements

    IX. « Best of » de requêtes avec regroupement

    Ici je propose un recueil de requêtes avec Somme et Compte et qui reviennent régulièrement dans nos forums. À l'heure où j'écris ces lignes, certaines de ces requêtes avec regroupement et qui mériteraient d'apparaître dans ce « Best of » ont pu m'échapper. N'hésitez pas à me contacter par MP si le cas se présente.
    Vous pouvez aussi bien proposer vos idées ici-même dans ce fil après tout.

    En voici une qui m'est revenue à l'esprit d'après la discussion de florianne.

    Citation Envoyé par florianne
    Le résultat de la requête serait de déterminer par exemple la liste des élèves qui aurait les compétence 5 ET 7.
    La solution que j'avais proposée à l'époque pour faire ce ET:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT NomEleve, PrenomEleve
    FROM TblEleve
    WHERE Competence IN (5,7)
    GROUP BY NomEleve, PrenomEleve
    HAVING Count(*)=2

    mmmhhh, est-ce seulement la meilleure solution ?

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Salut Fabien

    Deux remarques sur ta requête:

    1. Tu renverras les élèves qui ont exclusivement les compétences 5 ET 7, à l'exclusion dautres compétences. Si tu veux récupérer ceux qui ont au moins les compétences 5 et 7 (ce qu'à mon sens on comprend de prime abord de la question de Floriane), il faudra utiliser having count(*)>=2.

    2. C'est un peu hors sujet, mais ce n'est pas une bonne pratique, a priori, de devoir répéter plusieurs fois les mêmes infos dans une table (ici, nom et prénom pour une même personne autant de fois qu'elle a de compétences). Il serait plus logique de proposer cela au sein d'une requête qui utiliserait une clé externe vers la table des élèves, par exemple select Eleve_FK from qryEleveCompetence where ... (tant qu'à inculquer les bonnes pratiques...)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut
    Hello Pierre,

    avec la clause WHERE Competence IN (5,7), la requête commence par filtrer les enregistrements en excluant les éventuelles autres compétences.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    idEleve    idCompetence
    1            4
    1            5
    1            7
    1            8
    1            12
    2            5
    2            8
    Le regroupement sur idEleve et le critère HAVING Count(*)=2 (sous entendu qu'un élève ne peut avoir une compétence particulière qu'une seule fois) vont permettre de retenir cet élève n°1 qui a donc au moins les compétences 5 ET 7 (en plus des compétences 4 et 8), me semble-t-il.

    Par extension, une autre requête intéressante serait d'obtenir les élèves qui ont TOUTES les compétences de la table des compétences. Une autre paire de manches et une autre histoire...

    Concernant le point 2, entièrement d'accord avec toi. J'avais d'ailleurs précisé :
    Citation Envoyé par f-leb Voir le message
    ...mais j'espère que la vraie table comporte les champs (identifiantEleve, identifiantCompetence)
    Si je mets le tuto à jour, il faudra de toute façon que j'adapte le principe sur la table des commandes de la base "Les comptoirs" comme pour toutes les requêtes de l'article

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Hello Fabien,

    Ce n'est pas la clause WHERE qui pose problème, mais la clause HAVING

    Soit la table suivante:


    La requête suivante

    renvoie uniquement Manon


    Alors que la requête suivante

    renvoie Manon et Pierre
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut
    Bonjour Pierre,

    ok je vois, c'est juste que nous nous sommes pas entendu sur ceci:
    Citation Envoyé par f-leb
    (sous entendu qu'un élève ne peut avoir une compétence particulière qu'une seule fois)
    Dans ton exemple, l'élève Pierre Fauconnier a deux fois la même compétence 5 (ID=4 et ID=7). J'avais supposé que ce cas n'était pas possible (en mettant la clé primaire sur le couple (élève, compétence) ).

    sur ce je dois aller bosser un peu, bonne journée.

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Tu as parfaitement raison... Au temps pour moi.

    On pourrait donc continuer l'expérience:
    Qui a exclusivement ces deux compétences?
    Qui a toutes les compétences (pour reprendre ton idée)?

    Allez, à nos claviers
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Excellent travail, avec de très bons exemples pour illustrer tout ça

    Rien à redire
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  15. #15
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut
    Merci Denis,

    L'appétit vient en chantant...
    …et en développant aussi, ou encore en écrivant des articles

    Bonnes fêtes à toute l’équipe Office

  16. #16
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Merci
    Encore un grand merci pour le temps passé sur ce tuto.

    Si jamais vous êtes de passage à Genève, informez moi quelques jours à l'avance. je vous dois un geuleton

  17. #17
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40
    Par défaut
    Merci Pascal,

    Si l'article a pu te sauver la vie d'une façon ou d'une autre, j'en suis fort content

    Je n'ai pas prévu de passer en Suisse dans l'immédiat mais je mets un signet tout de suite vers ton message, au cas où

    Bonne continuation dans tes développements et pour le reste.

Discussions similaires

  1. Requête avec regroupement "particulier"
    Par access_balou dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/10/2008, 14h37
  2. [heritage] quelle syntaxe pour les requêtes avec Mysql
    Par tavarlindar dans le forum Requêtes
    Réponses: 7
    Dernier message: 07/05/2008, 23h47
  3. Réponses: 2
    Dernier message: 31/05/2007, 13h20

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