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

Algorithmes et structures de données Discussion :

supprimer des lignes répétées


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut supprimer des lignes répétées
    salut,
    j'ai une table contenant les vaccins faits par chaque enfant. Pour chaque enfant je dois avoir 4 vaccins. Par erreur du système, j'ai des enfants qui ont le meme vaccins qui se répetent n fois avec des dates de création et date de mise à jour "DteMAJ" différentes. Il m' a été demandé de supprimer ces lignes ajouté mais par code.Je dois laisser pour chaque vaccin que celui qui a une date de MAJ récente. est ce que vous avez une idée pour regler ce prob???

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Salut,

    Qu'est ce que tu sous entend par table ?
    C'est une table SQL ou un Tableau ?
    Si c'est un tableau y a t'il un ordre ?
    Peux tu fournir un exemple ?

  3. #3
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    salut, merci de votre réponse.
    par table je veux dire une table SQL.
    je vous donne l'exmple suivant :
    Pour un enfant X, il a les lignes suivantes :
    1 - vaccin : B
    dte MAJ : 07/06/2006

    2 - vaccin : B
    dte MAJ : 07/06/2006

    3 - vaccin : B
    dte MAJ : 02/04/2005.

    Mais moi je dois garder une seule ligne et c'est celle qui a la date de maj recente. Donc je dois supprimer la ligne 2 et 3.

    Ce problème se répétent avec d'autres vaccins autre que B.

    J'espère que j'ai été plus clair.

    J'espère

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Plusieurs méthodes sont possibles, le choix dépend du nombre de données que tu as.

    1/ Tu insère toutes les lignes que tu veux garder dans une table temporaire puis tu supprime toutes celles qui n'appartiennent pas à cette liste.

    2/ Tu insère dans une table temporaire toutes les lignes correspondant à des vaccins en doublon, tu supprime de cette table les lignes avec le max DteMAJ
    Puis tu supprime les lignes de cette table de ta table principale.

  5. #5
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    salut,
    peux-tu me me réxpliquer la 2ème solution stp?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Je n'avais pas bien vu ton exemple.

    Tu peux avoir 2 dates identiques ?

  7. #7
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    oui effectivement, je peux avoir deux dates identiques.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Dans le cas de deux lignes avec des dates identiques pour un même couple (enfant, vaccin) comment fais tu ton choix ?

    Si la table contient uniquement (enfant, vaccin,date) alors je te conseil la méthode 1.

    Sinon il faut re reflechir à la méthode 2.

  9. #9
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    si pour le couple (enfant, vaccin) jiai une date identique, je prens la première ligne. la 2ème solution je l'ai pas bien saisi.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    La deuxième solution est l'inverse de la première.

    Dans la première je recherche les lignes valides.

    Dans la deuxième je recherche les lignes invalides. Une ligne est invalide si il en existe une autre pour le couple (enfant, vaccin) avec une date supérieur.

  11. #11
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    LA 2me solution n'est pas la bonne pour mon cas puisque j'ai les dates qui sont parfois similaires. je peux alors retenir la 1ère. toutefois je cherche une solution la plus optimale puisque je vais mettre cette partie dans une boucle alor le temps d'execution serait enorme.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Je pense qu'il serait plus optimal de faire le traitement en SQL et non dans une boucle for.

  13. #13
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    salut
    le traitement est avec SQL, mais j'ai besoin d'une boucle pour passer d'un vaccin à l'autre et vérifier s'ila plusieurs ligne pour executer ces traitement avec SQL.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    en SQL on utilse des curseurs. Pour déterminer les vaccins valide, une simple requete suffit.

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/08/2008, 15h25
  2. faire un include en supprimant des lignes
    Par TheRedLed dans le forum Langage
    Réponses: 8
    Dernier message: 21/07/2006, 13h58
  3. [Vb.Net][Datagrid] Impossible de supprimer des lignes
    Par SamRay1024 dans le forum Windows Forms
    Réponses: 19
    Dernier message: 11/04/2006, 16h28
  4. [VBA][Excel]supprimer des lignes vierges
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/01/2006, 13h17
  5. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 12h26

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