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 :

suppression de données en fonction de la date [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Points : 34
    Points
    34
    Par défaut suppression de données en fonction de la date
    Bonjour à tous,
    J'aurai besoin d'un peu d'aide pour une manipulation access.

    J'exploite des données à partir de fichiers texte, je les fais passer dans une requête ajout qui vient alimenter ma table principale: la table "A"

    Parmi les champs de la table "A" j'ai entre autres:
    - une clé primaire (combinaison de plusieurs champs)
    - un champ "version" avec la date et l'heure de l'extraction

    Je voudrais créer une requête suppression qui effacera les champs de la Table "A" qui ont la même clé primaire mais qui ne sont pas les plus récents.

    Autrement dit je ne veux garder qu'une seule ligne par clé primaire, et cette ligne doit être celle avec la date la plus récente.

    Toute aide est évidemment bienvenue.

    Merci,
    Julie

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 863
    Points : 58 414
    Points
    58 414
    Billets dans le blog
    44
    Par défaut
    bonsoir,

    un truc de ce genre peut-être:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE FROM a
    WHERE  a.version < (SELECT MAX(b.version)
                        FROM   a AS b
                        WHERE  a.cle1 = b.cle1
                               AND a.cle2 = b.cle2);

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta réponse f-leb.
    J'ai eu beau essayer ta requête dans tous les sens, mais ça ne marche pas pour mon besoin. Je viens de comprendre que j'ai en fait très mal expliqué la situation.

    Si tu me le permets je te re-soumet le problème qui est simplifié pour le coup.

    J'ai toujours ma table "A" dans laquelle, parmi les champs j'ai :
    - un identifiant "identification"(qui n'est pas une clé primaire)
    - une version --> "version"

    Pour deux mêmes identifiants j'aimerai garder uniquement celui qui a la version la plus récente.
    Je ne cherche plus à supprimer quoi que ce soit, juste créer la requête adéquate.

    Ca n'a pas l'air compliqué mais je pietinne...

    Julie

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 863
    Points : 58 414
    Points
    58 414
    Billets dans le blog
    44
    Par défaut
    bonjour kimai,

    tu devrais pouvoir effectuer ça avec l'assistant requête:

    - afficher les deux champs "identification" et "version"
    - opérer un regroupement (cliquer sur le bouton [Σ])
    - faire une opération "Max" sur le champ "Version"

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Points : 34
    Points
    34
    Par défaut
    Effectivement aussi simple que ça.
    Pour info j'ai créer une requête qui me sert ensuite de paramètre.

    Merci beaucoup!

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

Discussions similaires

  1. Rapatrier un nombre de données en fonction d'une date
    Par CLAUDE19 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/12/2014, 12h42
  2. [Batch] Suppression de répertoire en fonction de leur date
    Par renowep dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 17/01/2014, 22h23
  3. [XL-2003] Importer données d'Access en fonction d'une date
    Par FCL31 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/09/2009, 12h56
  4. suppression fichier en fonction d'une date
    Par kalyparker dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 02/07/2007, 15h19
  5. Script de suppression de fichiers en fonction de la date
    Par yellow174 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 06/02/2006, 12h57

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