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

Langage SQL Discussion :

requête pour exclure les doublons.


Sujet :

Langage SQL

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut requête pour exclure les doublons.
    ma question est plus adéquate pour ce forum..( je l'avias mise dans acces...)

    Bonjour,
    Voici a requête que j’aimerais faire dans access :

    J’ai une table T avec les colonne A, B et C.
    Il y a des lignes en doublons sur les valeurs A et B (seul C diffère).
    J’aimerais qu’il n’y ait plus de doublons dans ma table (peut importe la valeur de C).
    Est-ce possible de faire cela avec une requête ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 209
    Points : 125
    Points
    125
    Par défaut
    Utilise DISTINCT dans le SELECT.

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    au fait je me sui mal exprimé, c'est n peu plus compliqué.

    un exemple st plus parlant

    col1 col2
    A B
    A B
    B A
    B A


    je voudrais uniquement extraire:

    col1 col2
    A B

    en effet, je considère que
    A B est équivalent à B A

    est-ce possible?

  4. #4
    Membre habitué Avatar de souellet
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2003
    Messages : 155
    Points : 171
    Points
    171
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a,b,c FROM Table
    WHERE a NOT IN (SELECT b FROM table)
    AND b NOT IN (SELECT a FROM table)
    faudra peut-être ajouter un bout de code pour accepter les enregistrements avec a=b.

    J'ai pas testé mais ça devrait pas mal être çà!
    Bonne journée!

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Il me semble qu'avec la requête suivante tu n'obtiens ni (a, b), ni (b, a) quand les deux existent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a,b,c FROM Table
    WHERE a NOT IN (SELECT b FROM table)
    AND b NOT IN (SELECT a FROM table)
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a, b FROM laTable WHERE a <= b
    UNION
    SELECT b, a FROM laTable WHERE b <= a
    Normalement le UNION supprime les doublons
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  6. #6
    Membre habitué Avatar de souellet
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2003
    Messages : 155
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Médiat
    Il me semble qu'avec la requête suivante tu n'obtiens ni (a, b), ni (b, a) quand les deux existent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a,b,c FROM Table
    WHERE a NOT IN (SELECT b FROM table)
    AND b NOT IN (SELECT a FROM table)
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a, b FROM laTable WHERE a <= b
    UNION
    SELECT b, a FROM laTable WHERE b <= a
    Normalement le UNION supprime les doublons
    Pourquoi un UNION? Dans ton exemple tu ramène des valeurs de la colonne b dans la colonne a et vice-versa.

    C'est vrai que dans mon exemple, j'avais omis d'enlever les doublons
    mais de là à utiliser un UNION!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT a,b,c FROM Table
    WHERE a NOT IN (SELECT b FROM table)
    AND b NOT IN (SELECT a FROM table)
    • col1 col2
      A B

  7. #7
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Souellet >> que donnes ton exemple (et le mien, je ne peux pas tester ici)
    avec les données suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a   b
    1   3
    2   5
    3   1
    3   2
    5   7
    ??

    PS : l'UNION dédoublonne en plus
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  8. #8
    Membre habitué Avatar de souellet
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2003
    Messages : 155
    Points : 171
    Points
    171
    Par défaut
    Mon exemple
    Bon... ça accroche dans mon cas.

    Ton exempleC'est mieux. manquerait la valeur 3,2.

    Je sais pas pour toi Médiat, mais moi je m'amuse
    Manque juste que sam01 embarque dans la discussion!

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par souellet
    C'est mieux. manquerait la valeur 3,2.
    ET je ne comprends pas pourquoi, il devrait être dans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT b, a FROM laTable WHERE b <= a
    sous la forme 3,2

    Citation Envoyé par souellet
    Je sais pas pour toi Médiat, mais moi je m'amuse
    Manque juste que sam01 embarque dans la discussion!
    D'autant plus que pour avoir un besoin pareil, je commencerais par soupçonner (soupçonner seulement) un défaut de conception avant de chercher la requête...
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  10. #10
    Membre habitué Avatar de souellet
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2003
    Messages : 155
    Points : 171
    Points
    171
    Par défaut
    C'est testé et ça fonctionne!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select a,b from table                     
    where a concat b not in                    
    (select b concat a from table1 where a <=b)

  11. #11
    Membre habitué Avatar de souellet
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2003
    Messages : 155
    Points : 171
    Points
    171
    Par défaut
    ="Médiat... je commencerais par soupçonner un défaut de conception avant de chercher la requête...
    C'est la première constatation que j'ai faite!

  12. #12
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    je vous remercie pour cette aide.
    Je ne pensais pas que ça allait être si compliqué.
    J'ai basculer mes données de excell vers access parceque je pensais que ça allait être plus simple de traivailler en sql qu'en visual basic sur excel.
    Il y a en effet sûrement une erreur de conception de ma base de données.
    Faut dire que j'ai fait ça sur un coup de tête.
    Je teste la requête sur ma base donnée et je vous tiens au courant.

    Merci pour tout.

    A+

  13. #13
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par souellet
    C'est mieux. manquerait la valeur 3,2.
    Chez moi cela marche parfaitement, j'ai bien toutes les valeurs
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  14. #14
    Membre habitué Avatar de souellet
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2003
    Messages : 155
    Points : 171
    Points
    171
    Par défaut
    Peut-être DB2... encore!

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/06/2014, 12h34
  2. requête pour supprimer les doublons
    Par omar01 dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/11/2012, 09h32
  3. Requête pour supprimer les doublons
    Par chouchouilloux dans le forum SQL
    Réponses: 2
    Dernier message: 11/06/2010, 11h46
  4. pour supprimer les doublons d'une table qcq
    Par lamjed dans le forum Oracle
    Réponses: 7
    Dernier message: 19/12/2008, 16h42
  5. requête pour trouver les champs sans doublons
    Par kuhnden dans le forum Access
    Réponses: 2
    Dernier message: 28/03/2008, 18h34

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