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 :

Ne pas avoir de doublons dans une requête avec beaucoup de OU


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 94
    Points : 55
    Points
    55
    Par défaut Ne pas avoir de doublons dans une requête avec beaucoup de OU
    Bonjour,

    Titre peu explicite, mais j'ai du mal à l'exprimer.
    J'ai une table d'actions, et une table de publics ciblés par cette action. Comme c'est du n;m (une action peut avoir plusieurs type de public, et chaque public peut être ciblé par plusieurs actions), j'ai une table de jointure.

    Je veux rechercher toutes les actions ciblant le public a OU le public b OU le public C. Mais dans ce cas, une action ciblant au moins 2 publics apparaitra autant de fois.
    Or comme je veux compter le nombre d'actions qui ciblent indifféremment n'importe lequel de ces publics, je ne veux pas de double compte.

    Et là, je bloque, impossible de savoir comment faire avec ma requête (sachant que je manie pas voire peu le SQL)
    La solution que je vois serait de faire une première requête avec tous les doublons (critères public a OU b ou C), puis de faire une requête sur cette requête uniquement sur le champ numéro de l'action avec un regroupement et un compte. Du coup, j'ai bien le nombre d'actions, mais c'est un peu fastidieux. Existe-t-il un moyen de faire plus simple ?

    Merci

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 629
    Points : 34 335
    Points
    34 335
    Par défaut


    le mot clé utilisé pour n'obtenir qu'une seule fois un enregistrement qui pourrait apparaitre plsuieurs fois est DISTINCT

    Exemple dans une table de personnes (Prenom,Nom), si on veut récupérer la liste des prénoms:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Prenom FROM MaTable
    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 du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Merci pour cette réponse, mais j'avoue ne pas très bien comprendre.

    En fait, dans ma requête, j'arrive avec une liste dans laquelle je peux avoir un doublon, du style :
    Action1 Partenaire1
    Action1 Partenaire1

    Puisque certaines caractéristiques de partenaire1 non prises en compte dans ma requête vont différer entre les deux lignes.
    Du coup, par un regroupement, je n'ai plus que
    Action1 Partenaire1

    Sauf que si je demande de compter ma colonne Action, il va me compter 2 Action1 pour Partenaire1. Comment lui faire compter le regroupement directement, à part la solution évoquée dans mon premier post ? (concrètement, s'il faut forcément passer par du SQL, peux-tu me donner le code complet pour ce cas d'exemple ?)

Discussions similaires

  1. Eviter les doublons dans une requête.
    Par Smint dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/03/2017, 16h17
  2. Doublons dans une requête avec des UNION
    Par cloclo23 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 12/05/2012, 13h36
  3. [AC-2007] Ne pas afficher doublons dans une requête
    Par bigaccess dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 03/03/2012, 18h55
  4. Problème de doublons dans une requète complexe
    Par noakiss dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/03/2008, 09h19
  5. Doublons dans une requète complexe
    Par noakiss dans le forum VBA Access
    Réponses: 0
    Dernier message: 19/03/2008, 15h30

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