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 afficher les doublons dans une requete Access [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut ne pas afficher les doublons dans une requete Access
    Bonjour,

    je viens vers vous pour un problème que je sais qui est souvent posté sur ce forum.
    Je n'aie pas trouvé la solution .
    Je m'explique,
    J'ai une requete qui m'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    date1	                N°	   date2	         Identifiant	N°produit        
    22/03/2017 05:38:46	3	22/03/2017 05:45:52	-2126491024	A	
    22/03/2017 05:38:58	3	22/03/2017 05:46:00	-2126490927	B	
    22/03/2017 05:39:24	7	22/03/2017 05:40:06	-2126491636	C	
    22/03/2017 05:39:24	9	22/03/2017 05:40:03	-2126491619	D
    22/03/2017 05:39:24	9	22/03/2017 05:40:03	-2126491619	E
    22/03/2017 05:39:27	9	22/03/2017 05:40:08	-2126491624	Y	
    22/03/2017 05:39:29	9	22/03/2017 05:40:07	-2126491623	Z
    22/03/2017 05:39:30	9	22/03/2017 05:40:06	-2126491620	M
    22/03/2017 05:39:30	9	22/03/2017 05:40:06	-2126491620	P
    je souhaiterais supprimer les enregistrements qui ont des doublons sur le champ "identifiant" même si le N°produit n'est pas le même sur les champ qui ont le même identifiant" ( les lignes en rouge sur mon exemple)

    merci d'avance de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    quand tu dis supprimer? c'est définitivement ou pour l'affichage?
    Code Definitivement : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE Toto.* FROM Toto
    WHERE Toto.Identifian In (select Toto.Identifian
    FROM Toto
    GROUP BY Toto.Identifian
    HAVING Count(Toto.Identifian)>1);

    Code Affichage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select Toto.* FROM Toto
    WHERE Toto.Identifian not In (select Toto.Identifian
    FROM Toto
    GROUP BY Toto.Identifian
    HAVING Count(Toto.Identifian)>1);

  3. #3
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonjour dysorthographie
    Merci pour ces deux réponses.mais je dois t'avouer que ma requete est une requête union imbriqué et je ne sais pas comment y inserer tes lignes de code.
    Si je reprend tes exemples, voici ce que serait ma requete union imbriqué:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    SELECT 
    Toto.Identifian, 
    Toto.nom, 
    Toto.prenom, 
    Toto.adresse
     
    FROM (
     
    SELECT
    T1.identifian, 
    T1.nom, 
    Null as prenom,
    Null as adresse
     
     
    FROM T1
     
    WHERE ....
     
    GROUP BY 
    ....
     
     
    UNION
     
    T1.identifian, 
    null as nom, 
    T2.prenom,
    Null as adresse
     
    FROM T2
     
    WHERE ...
     
    GROUP BY ...
     
     
     
    UNION
     
    T1.identifian, 
    null as nom, 
    null as prenom,
    T3.adresse
     
    FROM T3
     
    WHERE ...
     
    GROUP BY ...
    ) as Toto 
    GROUP BY 
    Toto.Identifian, 
    Toto.nom, 
    Toto.prenom, 
    Toto.adresse
    Ou dois je insérer tes lignes de codes..

  4. #4
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    dysorthographie,

    j'ai fait une petite requête avec tes exemples et je me rend compte que ta requête supprime tous les enregistrements qui ont le même identifiant.
    Ce que je souhaite ce n'est pas la suppression des doublons mais que la requête prenne en compte un seul enregistrement et non pas tous les enregistrements qui ont le même identifiant

  5. #5
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    dysorthographie,
    Pour faire simple, je suis parti d'une création de table a partir des sous requetes union.
    Ma table créee T_SuiviCAB comporte des doublons sur le champ ParcelId.
    Je souhaiterais supprimer les doublons sur ce champ .
    J'ai donc crée cette sous requete ci dessous mais elle ne fonctionne pas..
    Pourrais tu m'aider à trouver ce qui ne vas pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT T_SuiviCAB.Num
     
    FROM T_SuiviCAB 
     
    WHERE Num NOT IN (
     
    SELECT MIN (Num) 
    FROM T_SuiviCAB as x
     
    JOIN (
     
    SELECT ParcelId 
    FROM T_SuiviCAB 
    GROUP BY ParcelId) as y
     
    on x.ParcelId= y.ParcelId
    GROUP BY x.ParcelId
    ;

  6. #6
    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 595
    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 595
    Points : 34 269
    Points
    34 269
    Par défaut
    Salut,

    j'ai l'impression que les termes employes ne nous aident pas a trouver une solution perenne.

    Tu parles de "ne pas afficher les doublons" dans ton titre, de les "supprimer" dans ton premier post.

    Tu nous soulignes en rouge les enregistrements concernes sans nous indiquer le resultat attendu.

    Supprimer <> ne pas afficher.

    Merci de determiner exactement ton besoin stp.
    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

  7. #7
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonjour Jean-Philippe André
    Il est vrai qu'il est difficile d'exprimer par écrit une difficulté..
    Mais c'est bon, j'ai trouvé la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT 
    T_SuiviCAB.Num, 
    T_SuiviCAB.ParcelId
     
    FROM T_SuiviCAB, (
     
    SELECT   MAX(Num) AS MaxNum
    			FROM T_SuiviCAB 
    			GROUP BY  
    ParcelId
    ) AS A
    WHERE (T_SuiviCAB.Num=A.MaxNum);

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut No SQL
    Bonjour,
    je cherche à faire la même chose, mais sans avoir à écrire du code (je n'y connais rien et, pour l'instant, je n'ai pas la possibilié de de m'y mettre). S'il vous plaît, y a-t-il une solution via l'interface graphique ? (a priori non).

    Par exemple, si je reprends l'exemple de facteur (cf sa première capture), il faudrait que, dans le champ "N°", le n°9 n'apparaissent qu'une seule fois.

    Je vous remercie vivement pas avance.
    JH

  9. #9
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Bonjour Code-is-law

    Si tu veux des réponses à ta question, ouvre une nouvelle discussion. Celle que tu utilises est Résolue !

    Toutefois, pour te mettre sur la piste, fait un clic droit sur les champs de la requête et choisit Totaux. La propriété regroupement va apparaître.

    Je te conseille d'étudier attentivement ce tuto : http://f-leb.developpez.com/tutoriel..._regroupement/

    Titi95
    Un problème bien posé est à moitié résolu

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

Discussions similaires

  1. Ne pas afficher les doublons dans mon rapport
    Par shallum dans le forum Jasper
    Réponses: 6
    Dernier message: 06/01/2010, 17h10
  2. Réponses: 2
    Dernier message: 21/04/2009, 21h10
  3. empecher les doublons dans une requete
    Par Kallamou dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/02/2007, 16h21
  4. Eviter les doublons dans une requete ?
    Par DrySs dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/03/2006, 05h24
  5. Éviter les doublons dans une requete
    Par royrremi dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/08/2004, 19h37

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