Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2011, 17h58   #1
Invité régulier
 
Mak Mik
Inscription : février 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Mak Mik

Informations forums :
Inscription : février 2010
Messages : 45
Points : 7
Points : 7
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
kimai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 21h38   #2
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
bonsoir,

un truc de ce genre peut-être:

Code sql :
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);
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 12h10   #3
Invité régulier
 
Mak Mik
Inscription : février 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Mak Mik

Informations forums :
Inscription : février 2010
Messages : 45
Points : 7
Points : 7
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
kimai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 12h16   #4
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
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"
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 14h09   #5
Invité régulier
 
Mak Mik
Inscription : février 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Mak Mik

Informations forums :
Inscription : février 2010
Messages : 45
Points : 7
Points : 7
Effectivement aussi simple que ça.
Pour info j'ai créer une requête qui me sert ensuite de paramètre.

Merci beaucoup!
kimai est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h50.


 
 
 
 
Partenaires

Hébergement Web