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 :

Regroupement Compte (Equivalent NB.SI) [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Regroupement Compte (Equivalent NB.SI)
    Bonjour,

    J'ai deux tables :

    Table produit
    - Code
    - Libellé
    - Catégorie

    Table commande
    - Code
    - Client
    - Vendeur

    Je voudrais réussir à faire une requête qui me donnerait pour un code le nombre de vendeur qui en ont vendu.

    Exemple : le produit code A a été vendu par les vendeurs Jean, Paul, Didier. Résultat attendu :
    A 3

    J'ai essayé d'utiliser regroupement et compte. Mais j'obtiens comme résultat :

    A Jean 1
    A Paul 1
    A Didier 1

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    C'est une bonne piste.
    Ton erreur a été de laisser le nom du vendre dans les résultats.
    Supprime la colonne et cela va te donner le résultat attentdu.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Cher tous bonjour,

    Attention la réponse est un peu plus subtile, en supprimant comme suggéré la colonne vendeur de la requête le résultat obtenu est cohérent si dans la table commande il n'est assuré qu'une entrée par vendeur et par code.

    Imaginons le cas suivant :

    A Client1 Paul
    A Client2 Paul
    A Client1 Jean
    A Client3 Didier
    B Client1 Paul

    La requête suivante n'appliquant pas le regroupement sur le code vendeur affiche 4 ce qui n'est pas la réponse souhaitée :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Count(commande.Vendeur) AS CompteDeVendeur FROM commande GROUP BY commande.Code HAVING (((commande.Code)='CODEA'));

    le nombre 4 correspond aux nombres d’occurrences du codeA trouvé dans la table commande.

    A priori le résultat souhaité est de 3 (paul, jean et Didier) car le produit CodeA figure plusieurs fois pour des commandes différentes.

    Dans ce cas il va nous falloir imbriquer deux requêtes filtrant le code produit

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Commande.Vendeur FROM Commande WHERE (((Commande.Code)='codeA'))

    et calculer le count pour valider la requête finale suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Count([Vendeur]) AS Nb_occ FROM (SELECT DISTINCT Commande.Vendeur FROM Commande WHERE (((Commande.Code)='codeA')))  AS monAlias;

    En adaptant les noms, cette requête devrait satisfaire tes exigences cher Mutafukaz.

    Bonne journée
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos réponses. Effectivement bien vu jimbolion, tu réponds parfaitement à mon besoin. Est-ce que je peux appliquer ta solution en utilisant l'interface visuelle (Champ/Table/Tri/...) des créations de requête (nb. ne maîtrisant pas le SQL) ?

  5. #5
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Mutafukaz bonjour,

    Cette requête devra être la source de ton formulaire (ou sous formulaire ?) suivant l'idée que tu te fais de l'écran !

    Dis nous en un peu plus sur ce que tu souhaites faire ainsi que la structure exacte et le nom de ta ou tes tables.

    Cldt
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Salut jimbolion,

    Non je n'ai pas de formulaire. J'utilise juste l'outil de création de requête d'Access. En fait ma précédente question était de savoir si je pouvais matérialiser ta formule SQL dans l'interface de l'outil de création de requête cf. image suivante : https://support.content.office.net/f...4ae9326bcf.gif

    Je joindrai un fichier demain matin.

    Merci !

  7. #7
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Mutafukaz bonjour,


    Concernant la requête te permettant de trouver le nombre de vendeurs pour chaque produit tu devras dans ce cas utiliser la requête suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Count([Vendeur]) AS Nb_occ, Code AS N_Code
    FROM (SELECT commande.Code, commande.Vendeur FROM commande GROUP BY commande.Code, commande.Vendeur)  AS Alias
    GROUP BY commande.Code;

    En imaginant les entrées suivantes :

    Code Client Vendeur
    codeA C8 Paul
    codeA c1 Jean
    codeA c2 Paul
    codeA c3 Didier
    codeA c6 Didier
    codeB c4 Jacques
    codeB C7 Didier

    Le résultat en sortie te donnera ceci :

    Nb_occ N_Code
    3 codeA
    2 codeB

    Ce qui d'après ce que j'ai pu comprendre correspond à ton souhait.

    Essaie d'adapter à tes exigences cette requête.
    Le générateur ne te permettra pas de créer cette requête, il te faut passer par le mode SQL du générateur (clic droit sur l'onglet puis mode SQL).

    Cldt

    Jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci jimbolion avec tes indications j'ai finalement réussi à faire ce que je voulais.

    Bonne journée à toi et encore merci !

  9. #9
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Mutafukaz



    N'oublie pas le
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/12/2015, 15h40
  2. Regroupement "compte" incohérent
    Par tiwicom dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/02/2014, 10h00
  3. [XL-2007] Regrouper des comptes selon des numéros
    Par PeaceMaker dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/07/2012, 12h03
  4. [AC-2003] Requête compte et regroupement
    Par Kaera dans le forum Requêtes et SQL.
    Réponses: 29
    Dernier message: 18/06/2012, 09h48
  5. Réponses: 0
    Dernier message: 15/11/2009, 11h24

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