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 :

Supprimer des doublons dans une table


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut Supprimer des doublons dans une table
    Bonjour ,


    J'ai un petit problème et je ne sais pas comment procéder.

    Quand je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idUtilisateur from RDV_Participants
    il y a plusieurs lignes dont le idUtilisateur est le même , je souhaiterais en laisser qu'un seul !

    Comment je pourrais procéder pour faire ça ?
    Merci d'avance pour votre aide, vos conseils !

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Merci pour le lien
    Toutefois avec Utilisation d'une fonction de ranking et ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE 
    FROM RDV_Participants rdv
    WHERE rdv.COLUID>ANY
    (SELECT COLUID FROM RDV_Participants rdv2
    WHERE rdv.COLUID<>rdv2.COLUID)
    J'ai cette erreur:

    Msg*102, Niveau*15, État*1, Ligne*2
    Syntaxe incorrecte vers 'rdv'.

    Tu saurais me dire pourquoi ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    votre SGBD c'est SQL serveur ?

    Sinon en remplacant le delete par un select est-ce que la requete marche ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Oui je suis sur SQL serveur :

    En faisant un select * ça marche

    J'ai le même résultat qu'en faisant un SELECT IdUtilisateur from RDV_Participants en fait( j'ai pas encore très bien pigé la requete DELETE que j'ai essayé de faire )

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Citation Envoyé par arngrimur Voir le message
    Merci pour le lien
    Toutefois avec Utilisation d'une fonction de ranking et ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE 
    FROM RDV_Participants rdv
    WHERE rdv.COLUID>ANY
    (SELECT COLUID FROM RDV_Participants rdv2
    WHERE rdv.COLUID<>rdv2.COLUID)

    A quoi correspond COLUID en fait ?
    Si ca n'est pas une colonne d'origine de votre table comment l'avez-vous alimentée ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ALTER TABLE RDV_participants
          ADD COLUID uniqueidentifier
     
     
    UPDATE RDV_participants
    SET    COLUID = newid()

    merci

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Oki,

    Donc là si votre requête avait marchée vous auriez supprimé tous les enregistrement de votre table sauf un.

    Vous avez oublié de spécifier votre clause d'égalité pour repérer les doublons.

    Sinon je ne connais pas plus que ca SQL serveur donc concernant la syntaxe je ne saurai vous en dire plus, mais l'idée est là.

    Demandez à déplacer votre sujet dans le forum SQL Serveur ?

  9. #9
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    je vais te proposer deux solutions:
    la premiere est comme suite:
    1/Ajouter un champs intitulé par exemple double
    2/Marquer tous les doublants mettant à jour le champs double à l'aide de..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    update RDV_Participants A set A.double='OUI'
    where A.idUtilisateur  in
    (select  B.idUtilisateur  
    from RDV_Participants B
    group by B.idUtilisateur 
    having count(B.idUtilisateur )>1)
    3/Inserer des nouvelles lignes qui sont en doubles mettant le champ double à NULL.
    à suivre dans la piece jointe....car je n'ai pas pu publier la totalité du message
    Fichiers attachés Fichiers attachés
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Merci beaucoup pour ton aide!

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

Discussions similaires

  1. supprimer les doublons dans une table
    Par mavean dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/06/2019, 13h26
  2. Supprimer des doublons dans une table
    Par jonoz dans le forum SQL
    Réponses: 2
    Dernier message: 12/03/2010, 17h48
  3. Requête pour supprimer des doublons dans une table
    Par nomade333 dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/03/2008, 12h48
  4. [Collections]Supprimer des doublons dans une ArrayList
    Par emie31 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2005, 15h15
  5. Eliminer des Doublon dans une Table
    Par Soulama dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/02/2005, 14h27

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