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

Access Discussion :

Supression des doublons avec contraintes sur certains champs


Sujet :

Access

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Par défaut Supression des doublons avec contraintes sur certains champs
    ce message fais suite au topic suivant :

    http://www.developpez.net/forums/vie...505528#2505528

    mais un nouveau pb viens s'ajouter....
    j'ai donc une table avec des enregistrements.
    les variables sont : IDUnique (identifiant unique), idpersonne, date, autreInfos (un dixaine de oui/non et 2 entier)

    Les doublons se trouve sur idpersonne et j'aimerai les supprimer.
    nous avons donc d'abor fais avec ce code :

    SELECT matable.idunique, matable.idpersonne, matable.date, matable.autreinfo
    FROM matable
    GROUP BY matable.idunique, matable.idpersonne, matable.date, matable.autreinfo
    HAVING (((matable.date)=DMax("date","matable","idpersonne=" & [idpersonne])));

    qui classe selon la date. Mais la nouvelle conditions, c'est que je doit prendre tantot les infos dans les 1 enregistrement, tantot dans le second, pour ne former qu'un seul enregistremement pour l'identifiant de la personne.
    je dois prendre la valeur la + grande des 2.
    Exemple sur 2 enregistrements avec doublons :

    idunique | idpersonne | date | item1 | item2 | item3 | ...
    1 | 5 | 01/01/04| 0 | 1 | 0 .
    2 | 5 | 01/02/04| 1 | 0 | 0 .

    enregistrement final :
    idunique | idpersonne | date | item1 | item2 | item3 | ...
    2 | 5 | 01/02/04| 1 | 1 | 0 .

    Sans oublié qu'il y a des cas sans doublons....
    Qqn aurais une idée??

    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Par défaut
    personne n'a d'idée alors??

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 291
    Par défaut
    si tu veux supprimer les doublons d'une table tu regardes dans les propriétés de cette table et tu regardes à Indexé tu as le choix entre oui avec doublon, oui sans doublon et non. Je pense que ça pourrait t'aider!

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Togo

    Informations forums :
    Inscription : Décembre 2005
    Messages : 113
    Par défaut j'espère pouvoir t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT matable.idunique, matable.idpersonne, max(matable.date), matable.autreinfo 
    FROM matable 
    GROUP BY  matable.idpersonne;
    cette requette ne gardera qu'une seul ligne par idpersonne celle ou la date est le plus élevé

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 291
    Par défaut
    idunique correspond à un distinct?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Par défaut
    edzodziman> oui, cette requette ne garde qu'une ligne, et c'était l'objet de mon 1er topic.
    mais maintenant il faut que je recupere soit la variable du 1er enregistrement, soit le 2nd ( en fait la + grand)

    b_steph_2> ouio, mais ca n'est pas des doublons communs que je dois supprimer... le doublon ne porte que sur le champs IdPersonne.
    le chanmps IdUnique etant une clef unique par definition, n'a pas de doublon.

    le pb reste entier

  7. #7
    Membre chevronné
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Par défaut
    salut,

    en effet comme l'a souligné b_steph_2 idunique est distinct donc la requête de edzodzinam ne correspond pas.
    voici ma proposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Max(P.idunique) as idunique , P.idpersonne, max(P.madate) as madate ,sum([item1]), sum([item2]),sum([item3])
    FROM table3 AS P
    group by P.idpersonne;
    en supposant que idunique est un numauto.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Par défaut
    Petogaz> idunique est bien en auto
    et ton code marche a merveille

    une derniere question, sur un des champs, il faut prendre le + grand, sauf si le + grand est egal a 5 ... c'est possible?

    merci a vous!


    vive l'entre aide

  9. #9
    Membre chevronné
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Par défaut
    Citation Envoyé par nicko5959
    une derniere question, sur un des champs, il faut prendre le + grand, sauf si le + grand est egal a 5 ... c'est possible?
    tu dis su un des champs. mais de quel champ ?

  10. #10
    Membre chevronné
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Par défaut
    Citation Envoyé par nicko5959
    une derniere question, sur un des champs, il faut prendre le + grand, sauf si le + grand est egal a 5 ... c'est possible?
    tu dis su un des champs. mais de quel champ ?

  11. #11
    Membre chevronné
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Par défaut
    Citation Envoyé par nicko5959
    une derniere question, sur un des champs, il faut prendre le + grand, sauf si le + grand est egal a 5 ... c'est possible?
    tu dis su un des champs. mais de quel champ ?

    ps: oula !! j'ai rafraichis +sieurs fois je vais me faire par les modos !!

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Par défaut
    on va dire le champ taille ( non repertorié avant) P.taille donc

  13. #13
    Membre chevronné
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Par défaut
    regarde l'aide sur la fonction IIF() ou vraifaux() en français, cette fonction te permet de mettre une condition dans une requête.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Par défaut
    ok, j'y vais de ce pas!!
    merci encore pour l'aide


    ** Pb résolu**

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 14/04/2015, 17h07
  2. Réponses: 1
    Dernier message: 17/05/2011, 10h29
  3. [AC-2007] Gestion des doublons avec 2 champs indexés
    Par bestall666 dans le forum VBA Access
    Réponses: 4
    Dernier message: 08/06/2010, 18h53
  4. Requete avec disctinct sur certains champs
    Par zandeparis dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 11/12/2009, 14h57
  5. [AC-2003] Ne garder que les doublons, avec critère sur 2 champs.
    Par Faenors dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 22/07/2009, 09h30

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