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 :

[A-00] Count(Distinct) avec plusieurs Select et Group by...


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [A-00] Count(Distinct) avec plusieurs Select et Group by...
    Bonjour à tous,

    après plusieurs recherches infructueuses sur ce forum et sur le net, je cherche moi aussi comment faire ce fameux SELECT(DISTINCT) dans ACCESS 2000...


    Ma requète est la suivante:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT TMP.[COULEUR CDE] AS [CDE], TMP.[TYPE] AS [TYPE], Count(TMP.[Reference Numb]) AS [Data Count]
    FROM TMP
    GROUP BY TMP.[COULEUR CDE], TMP.[TYPE]
    HAVING (([TMP].[TYPE]) Is Not Null)
    ORDER BY TMP.[TYPE];

    Etant donné que des doublons existent dans mes Reference Numb, je souhaite implémenter un COUNT(DISTINCT) afin de ne garder que des references uniques, mais TOUT EN CONCERVANT les groupements existants...
    J'ai découvert qu'en faisant le code suivant, j'ai bien un COUNT(DISTINCT *)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Count(*) AS [Data Count]
    FROM
    (SELECT DISTINCT [Reference Numb] FROM TMP) AS T;


    Mais je n'arrive pas à l'implémenter dans ma requète initiale!
    Si quelqu'un à la solution, je suis preneur...

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Voici une table exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    NOM	PRENOM	Groupe
    DUPOND	Jean	A
    DUPOND	Sophie	A
    DUPOND	Jean	B
    SOL	John	A
    SIMON	Luc	C
    LECTER	Anibal	C
    KOLIN	Thomas	B
    LECTER	Anibal	B
    SOL	Lucie	C

    En fait je souhaiterai obtenir le nombre de nom distincts par groupe, soit une table du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    N_NOM	Groupe
    2	A
    3	B
    3	C
    Ma requète actuelle ne me donne pas le résultat escompté... puisqu'elle me renvoie le nombre de NOM unique total!

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT (SELECT Count(Nom)  FROM (SELECT Distinct Nom FROM AA )) AS N_Nom, AA.Groupe
    FROM AA
    GROUP BY AA.Groupe;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 72
    Points : 80
    Points
    80
    Par défaut
    Résultat de la requête suivant votre exemple :

    Nbre de A : 3
    Nbre de B : 3
    Nbre de C : 3

    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Count(Tableexemple.Nom) AS CompteDeNom, Tableexemple.Groupe
    FROM Tableexemple
    GROUP BY Tableexemple.Groupe
    WITH OWNERACCESS OPTION;
    Le nom de table : Tableexemple
    4 champs : Noms des champs : N°
    Nom
    Prénom
    Groupe

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci Etoileetoile, cependant cette requête ne me renvoie pas ce que j'attends, puisque je demande un comptage distinct sur les nom et groupé par groupe

    J'attends donc bien A: 2 et non A: 3, comme par exemple pour retrouver le nombre de famille distincte appartenant au groupe A, dans mon exemple.
    En gros, je souhaite "éliminer les doublons sur le nom", notez que le prénom n'est pas utilisé



    Citation Envoyé par etoileetoile Voir le message
    Résultat de la requête suivant votre exemple :

    Nbre de A : 3
    Nbre de B : 3
    Nbre de C : 3

    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Count(Tableexemple.Nom) AS CompteDeNom, Tableexemple.Groupe
    FROM Tableexemple
    GROUP BY Tableexemple.Groupe
    WITH OWNERACCESS OPTION;
    Le nom de table : Tableexemple
    4 champs : Noms des champs : N°
    Nom
    Prénom
    Groupe

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [SQL] Count(Distinct) avec Group By: LA SOLUTION!
    Citation Envoyé par Thomak Voir le message
    Voici une table exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    NOM	PRENOM	Groupe
    DUPOND	Jean	A
    DUPOND	Sophie	A
    DUPOND	Jean	B
    SOL	John	A
    SIMON	Luc	C
    LECTER	Anibal	C
    KOLIN	Thomas	B
    LECTER	Anibal	B
    SOL	Lucie	C

    En fait je souhaiterai obtenir le nombre de nom distincts par groupe, soit une table du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    N_NOM	Groupe
    2	A
    3	B
    3	C
    Ma requète actuelle ne me donne pas le résultat escompté... puisqu'elle me renvoie le nombre de NOM unique total!

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT (SELECT Count(Nom)  FROM (SELECT Distinct Nom FROM AA )) AS N_Nom, AA.Groupe
    FROM AA
    GROUP BY AA.Groupe;
    J'ai trouvé!

    Donc j'en fais profiter tout le monde:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Groupe, Count(Nom) AS N_Nom
    FROM (SELECT Distinct Groupe, Nom FROM AA)
    GROUP BY Groupe;

    Je retrouve bien dans ce cas le nombre de famille distinct, groupé par groupe.

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

Discussions similaires

  1. [AC-2007] Problème avec COUNT DISTINCT sur plusieurs champs :
    Par Bonero dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 12/10/2012, 14h33
  2. [AC-2003] Requete avec plusieurs SELECT
    Par Maxpuff dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/07/2010, 17h21
  3. Requete INSERT avec plusieurs SELECT
    Par Tinkite82 dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/09/2009, 17h30
  4. Union avec avec plusieurs select
    Par SmileAndFly dans le forum Langage SQL
    Réponses: 0
    Dernier message: 26/11/2007, 17h45
  5. Procédure stockée avec plusieurs SELECT
    Par amatollah dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/03/2006, 21h26

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