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

  1. #1
    Candidat au Club
    Inscrit en
    août 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : août 2002
    Messages : 3
    Points : 2
    Points
    2

    Par défaut Comment supprimer les doublons

    bonjour
    Comment supprimer les doublons (les ligne qui se répète) dans une table non indexée ?
    merci.

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    mars 2003
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : mars 2003
    Messages : 2 738
    Points : 4 398
    Points
    4 398

    Par défaut

    Donne la définition de ta table.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Candidat au Club
    Inscrit en
    août 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : août 2002
    Messages : 3
    Points : 2
    Points
    2

    Par défaut

    merci pour votre réponse
    date_deb char 10
    heure_deb char 10
    date_fin char 10
    heure_fin char 10
    code char 10
    mat char 10
    voix char 10

    dans toutes les colonne null autorisé

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    octobre 2002
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2002
    Messages : 4 155
    Points : 18 385
    Points
    18 385
    Billets dans le blog
    24

    Par défaut

    Il y a la version SQL lourde de type SELECT ... GROUP BY... HAVING COUNT(*) > 1, puis suppressions avec TOP 1

    ... ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    exec sp_rename TaTable, taTableOld
    select distinct * into TaTable from  taTableOld
    drop table taTableOld
    exec sp_recompile TaTable
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    mars 2003
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : mars 2003
    Messages : 2 738
    Points : 4 398
    Points
    4 398

    Par défaut

    Je devais proposer la solution lourde des select having mais c'est trop lourd.
    Mais fadace était là trop tôt.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    octobre 2002
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2002
    Messages : 4 155
    Points : 18 385
    Points
    18 385
    Billets dans le blog
    24

    Par défaut

    Ce n'est qu'un juste retour, pour une fois que c'est moi qui grille les politesses

    De plus, si c'etait pour la solution lourde, autant laisser la place

    PS : une table avec doublons est une table qui ne repond meme pas a 2FN... un petit effort, que
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  7. #7
    Candidat au Club
    Inscrit en
    août 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : août 2002
    Messages : 3
    Points : 2
    Points
    2

    Par défaut

    Merci pour vaux réponse qui on remédier à mon problème.

  8. #8
    Membre habitué
    Inscrit en
    avril 2007
    Messages
    1 084
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 1 084
    Points : 191
    Points
    191

    Par défaut

    Bonjour fadace,
    Pour résoudre un problème de doublon sur une table non indexé, J'ai repris ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    exec sp_rename TaTable, taTableOld
    SELECT DISTINCT * INTO TaTable FROM  taTableOld
    DROP TABLE taTableOld
    exec sp_recompile TaTable
    Lorsque je crée une nouvelle requete avec ce code sql ,
    j'ai un message d'erreur qui me dis que "instruction sql non valide".

    Que se passe t il ?

    Pour info , ma table, intitulée "T_Lise des clients", contient deux colonnes :
    Colonne "client code" et colonne "client libellé" .
    Or la colonne "client code" a beaucoup de doublon : le code client revient parfois une centaine de fois alors que je voudrais qu'il apparait qu'une seul fois.

  9. #9
    Membre habitué
    Inscrit en
    avril 2007
    Messages
    1 084
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 1 084
    Points : 191
    Points
    191

    Par défaut

    fadace,

    J'ai trouve la solution.
    Il suffisait de rajouter le mot "distinct" a la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT [T_Liste des clients SLM].[Client Code], [T_Liste des clients SLM].[Client Libellé]
    FROM [T_Liste des clients SLM];
    Et là, je n'obtiens plus de doublons sur les champs client code et client libellé.
    je me dis parfois que je fatigue en fin de semaine...
    a plus..

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 15
    Points : 16
    Points
    16

    Par défaut Suppression des doublons

    Bonjour à tous,

    Cette requête qui consiste à copier une table dans une autre et en la recréant sans les doublons fonctionne très bien, mais pas pour moi.

    En effet, j'ai des enregistrements qui sont considérés comme doublons car 3 colonnes sur 12 sont des doublons.
    Si j'exécute cette requête, il ne me supprime pas les doublons car tous les champs ne son pas identiques.

    Ce que je souhaite faire, c'est sélectionner les critères qui définissent le doublon, à la manière d'Excel quand on utilise la fonction de contrôle de doublons.

    Merci de votre aide

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/02/2008, 20h02
  2. Comment supprimer les doublons d'une table?!
    Par JauB dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/01/2006, 08h48
  3. Comment supprimer les doublons?
    Par Dnx dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/11/2005, 16h35
  4. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12

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