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 :

[SQL/access] Doublon sur un champ


Sujet :

Langage SQL

  1. #1
    kor
    kor est déconnecté
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 46
    Points : 34
    Points
    34
    Par défaut [SQL/access] Doublon sur un champ
    Je souhaite supprimer tous les doublons présents dans ma table pour obtenir une table représentative (arbitraire ) mais sans doublons sur PN.

    PN BTB
    S123 AA11
    S123 AB12
    S568 AD85
    S568 TT12

    pour obtenir :

    PN BTB
    S123 AA11
    S568 TT12

    J'ai essayé exists, any... mais je n'y comprends rien. Quelqun pourrait m'aider?
    Aimez-vous les uns les autres.

  2. #2
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    C'erst bien sur possible mais quel critère choisis tu pour savoir quelle ligne conserver?

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select MAX(BTB), PN
    from latable
    ...
    GROUP BY PN
    et voila... tu sélectionnes les PN et le BTB maxi pour celui-ci, du coup tu n'auras bien qu'un seul PN

  4. #4
    kor
    kor est déconnecté
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Pas mal comme idée, il me manque un petit truc : récupérer la ligne entière :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM latable WHERE (BTB,PN) = (SELECT BTB,PN FROM latable GROUP BY BTB,PN
    HAVING BTB=MAX(BTB))
    Et ca marche pas, ACCESS me jette comme un mal propre. Il n'aime pas mmon "(BTB,PN) =" .

    DSD je peux pas mettre de balise code.

    [Modération, Orafrance : Pensez à utiliser la balise [CODE] qui améliore la lisibilité, merci] Pourquoi tu ne peux pas ???
    Aimez-vous les uns les autres.

  5. #5
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    C'est bien normal que ca coince comme ca!

    En faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT BTB,PN,....(expliciter toutes les variables)
    FROM latable 
    GROUP BY BTB,PN,....(expliciter toutes les variables)
    HAVING BTB=MAX(BTB)

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    non, ce qu'il faut écrire c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT MAX(BTB),PN,....(expliciter les autres colonnes)
    FROM latable
    GROUP BY PN,....(expliciter les autres colonnes)

  7. #7
    kor
    kor est déconnecté
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    OK merci. Il faut mettre tous les champs! C'est trop long je vais faire autrement.

    Je peux pas mettre la balise code car le bouton marche pas et les crochets de mon clavier sont très capricieux. Y a des fois j'y arrive et d'autres pas!
    Aimez-vous les uns les autres.

  8. #8
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    Pour que les boutons des balises fonctionnent il faut que tu aies activé le BBCode dans ton profil...

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

Discussions similaires

  1. Requête SQL sur une base Access, where sur un champ date
    Par digital prophecy dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/05/2008, 16h47
  2. Eviter les doublons sur un champ SQL Serveur 2005
    Par crashyear dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/12/2006, 08h02
  3. [Access] supprimer les doublons sur deux champs
    Par nini94 dans le forum Langage SQL
    Réponses: 15
    Dernier message: 13/10/2006, 11h41
  4. Reperage de doublon sur plusieur champs
    Par sdblepas dans le forum Access
    Réponses: 2
    Dernier message: 29/06/2006, 18h19
  5. [SQL Access] SELECT sur plusieurs Tables et Composer Champs
    Par Giuseppe dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2005, 14h00

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