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 :

pb de supression de doublon


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 226
    Points : 72
    Points
    72
    Par défaut pb de supression de doublon
    Bonjour j'ai un probleme de supression de toublon le souci est que ma table source possède plus de 4 millions de lignes et lors de ma requete access me sort une erreur arguement non valide

    voila mon code actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT * INTO T_carte_hors_dossier_dans_BAR_sans_doublon
    FROM T_cartes_hors_dossier_dans_BAR;
    Si quelqu'un a une solution merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    Il me semble que tu ne peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select distinct * 
    ...
    essaie de lister tous tes champs...

    tu as bien une clé primaire dans ta table source ? si oui, le distinct * (s'il est autorisé) va te renvoyer exactement la table....

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    non le pire c'est qu'il n'y a pas de clé primaire donc voila.
    Sinon comment faire pour metrre tous les champq,
    car comme expliquer j'aimerais enlever les lignes qui sont doubles

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Sur quel critère(s) te bases tu pour les lignes à garder ???
    Tu gardes une ligne au pif ?

    Sinon:
    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
    SELECT DISTINCT 
                  Champs1
                , Champs2
                , Champs3...
    INTO   
           T_carte_hors_dossier_dans_BAR_sans_doublon
    FROM   
           T_cartes_hors_dossier_dans_BAR
     
    GROUP  BY 
                  Champs1
                , Champs2
                , Champs3...
     
    HAVING COUNT(*) > 1
    ;
    Ou quelque chose dans le genre !


  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    mon critere est qu'il y a des fois deux lignes indentiques donc j'aimerais en avoir qu'une seule donc je n'ai aps de critère en particulier

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    Voila on code (c'est du access) bah il m'affiche rien du tout j'ai un table vide

    Ou ai-je fait une erreur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT T_cartes_hors_dossier_dans_BAR.[N° de carte], T_cartes_hors_dossier_dans_BAR.[Date réception], T_cartes_hors_dossier_dans_BAR.NUACA1_cd, T_cartes_hors_dossier_dans_BAR.NEACDO_cd, T_cartes_hors_dossier_dans_BAR.DATRL0_dt, T_cartes_hors_dossier_dans_BAR.HETRL5_dt, T_cartes_hors_dossier_dans_BAR.MOESB_am, T_cartes_hors_dossier_dans_BAR.LIAQEN_lb, T_cartes_hors_dossier_dans_BAR.LIAQD6_lb INTO T_carte_hors_dossier_dans_BAR_sans_doublon
    FROM T_cartes_hors_dossier_dans_BAR
    GROUP BY T_cartes_hors_dossier_dans_BAR.[N° de carte], T_cartes_hors_dossier_dans_BAR.[Date réception], T_cartes_hors_dossier_dans_BAR.NUACA1_cd, T_cartes_hors_dossier_dans_BAR.NEACDO_cd, T_cartes_hors_dossier_dans_BAR.DATRL0_dt, T_cartes_hors_dossier_dans_BAR.HETRL5_dt, T_cartes_hors_dossier_dans_BAR.MOESB_am, T_cartes_hors_dossier_dans_BAR.LIAQEN_lb, T_cartes_hors_dossier_dans_BAR.LIAQD6_lb
    HAVING COUNT(*)>1;

  7. #7
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Et si tu essayes ainsi:
    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
    SELECT DISTINCT T_cartes_hors_dossier_dans_BAR.[N° de carte]
                    , T_cartes_hors_dossier_dans_BAR.[Date réception]
                    , T_cartes_hors_dossier_dans_BAR.NUACA1_cd
                    , T_cartes_hors_dossier_dans_BAR.NEACDO_cd
                    , T_cartes_hors_dossier_dans_BAR.DATRL0_dt
                    , T_cartes_hors_dossier_dans_BAR.HETRL5_dt
                    , T_cartes_hors_dossier_dans_BAR.MOESB_am
                    , T_cartes_hors_dossier_dans_BAR.LIAQEN_lb
                    , T_cartes_hors_dossier_dans_BAR.LIAQD6_lb 
    INTO 
            T_carte_hors_dossier_dans_BAR_sans_doublon
     
    FROM
            T_cartes_hors_dossier_dans_BAR
     
    GROUP BY T_cartes_hors_dossier_dans_BAR.[N° de carte]
                , T_cartes_hors_dossier_dans_BAR.[Date réception]
                , T_cartes_hors_dossier_dans_BAR.NUACA1_cd
                , T_cartes_hors_dossier_dans_BAR.NEACDO_cd
                , T_cartes_hors_dossier_dans_BAR.DATRL0_dt
                , T_cartes_hors_dossier_dans_BAR.HETRL5_dt
                , T_cartes_hors_dossier_dans_BAR.MOESB_am
                , T_cartes_hors_dossier_dans_BAR.LIAQEN_lb
                , T_cartes_hors_dossier_dans_BAR.LIAQD6_lb
     
    /* Pour afficher les doublons effectivement COUNT(*) > 1,
        Pour n'afficher que les lignes sans doublons COUNT(*) = 1 */
     
    HAVING COUNT(*) = 1
    ;

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    Est ce que la requête efface les doublons? car si je comprend bien avec le having soit j'affiche les lignes qui ont des doublon soit les lignes qui n'en n'ont pas hors j'aimerais effacer les doublons afin qu'il ne reste que des lignes uniques

  9. #9
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Non, elle n'efface pas les doublons...

    De plus je crois que l'on c'est mal compris sur le terme "Suppression".
    Je voyais cela au niveau logique et pas physique !!!

    Tes lignes sont strictement identiques mais sans clè... C'est bien cela ? Aucun numéro auto ou autre !!! Cela aurait été plus simple !

    [EDIT] En fait c'est quel genre de doublons ! Quasi doublons, doublons relatif ou absolus ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par Chtulus Voir le message
    Tes lignes sont strictement identiques mais sans clè... C'est bien cela ?
    Oui c'est cela bah il y a aucune clé

    Sinon les num d'auto ne sont pas tjrs présent donc voila

  11. #11
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Re,

    Alors c'est plus compliqué car il te faut une colonne discriminante sinon du fait d'une information semblable, toutes tes lignes seront supprimées...

    Bref la solution serait d'avoir une colonne en plus et l'incrémenté afin d'obtenir le résultat escompter... (Tel un numéro auto)

    Ensuite c'est plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DELETE
    FROM  TaTable T
    WHERE T.LeChampsID < ANY (SELECT LeChampsID
                                              FROM TaTable T2
                                              WHERE T.LeChampsID <> T2.LeChampsID
                                              AND  T.Champs1 = T2.Champs1                                          AND  T.Champs2 = T2.Champs2
                                              AND  etc...)
    C'est la plus élégante des façons, mais bon...
    Sinon voir si access accepte les fonctions de Ranking ???


Discussions similaires

  1. supression des doublons
    Par pymouse dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2007, 14h11
  2. Supression des doublons les plus anciens
    Par jonkalak dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/05/2007, 08h42
  3. Supression de doublon dans un tableau
    Par Blo0d4x3 dans le forum C
    Réponses: 4
    Dernier message: 18/05/2007, 01h47
  4. Réponses: 13
    Dernier message: 12/01/2006, 10h45
  5. utilisation classe vector et supression de doublons
    Par vandevere dans le forum SL & STL
    Réponses: 1
    Dernier message: 30/06/2005, 11h17

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