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 et SQL. Discussion :

Agrégat de doublons [AC-2000]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Points : 80
    Points
    80
    Par défaut Agrégat de doublons
    Bonjour !

    j'ai un petit souci avec une de mes requetes. je souhaites compter le nombre de clients qu'il y a dans ma table clients. là pas de soucis, j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT COUNT(Clients.idCli)
    FROM Clients;
    un identifiant différent par ligne, donc pas de soucis.

    par contre un client peut dépendre d'un autre (un établissement annexe par exemple).

    la structure de ma base fait que l'identifiant de l'etablissement 'leader' est dans la table Clients.

    j'ai donc un champ idCli avec l'identifiant unique du client, et un champ idLeader dans lequel est inscrit l'identifiant du leader.

    exemple :

    idcli | idleader
    120 | 120 <- c'est un etablissement leader
    121 | 120 <- c'est une annexe du client n°120
    122 | 471
    123 | 850
    124 | 850
    850 | 850
    ....

    j'aimerai que ma requete compte le nombre d'etablissements leaders dans ma table.
    par exemple ici il me renverrait '3' car il y a 3 etablissements leader

    j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT COUNT(idleader)
    FROM Clients;
    mais il me renvoit le meme résultat que la 1er requete, c'est à dire qu'il compte tous les enregistrements, meme si l'idLeader apparait plusieurs fois...

    Comment faire?

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 611
    Points : 34 287
    Points
    34 287
    Par défaut
    salut,
    à voir la fonction GROUP BY

    sinon, à toute fin utile, le cours de SQL PRO :
    http://sqlpro.developpez.com/cours/sqlaz/select/#L1
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Points : 80
    Points
    80
    Par défaut
    effectivement en faisant un group by, j'obtiens la liste de tous les identifiants des clients leaders et a coté le nombre d'annexes dont il dispose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Clients.[idleader], COUNT(Clients.[idleader])
    FROM Clients
    GROUP BY Clients.[idleader]
    il me retourne donc une liste de 13.000 lignes correspondant aux 13.000 clients leaders de la base.

    Néanmoins je souhaite faire un agrégat de ces lignes, c'est à dire que la requete me renverrait juste le nombre de leaders, soit 13.000

    Un probleme de regroupement?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 611
    Points : 34 287
    Points
    34 287
    Par défaut

    et un
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(*) FROM (SELECT Clients.[idleader], COUNT(Clients.[idleader])
    FROM Clients
    GROUP BY Clients.[idleader]);
    ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Points : 80
    Points
    80
    Par défaut
    ca y est, c'est Noel !

    merci beaucoup ca marche

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/02/2015, 11h39
  2. Supression de doublons et fonction d'agrégat
    Par pepi22 dans le forum Langage SQL
    Réponses: 24
    Dernier message: 23/08/2007, 00h57
  3. tri a bulle sans les doublons
    Par comme de bien entendu dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 10/03/2003, 16h29
  4. Création d'agrégat avec SQLServer
    Par Testav dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/09/2002, 16h54
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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