Suppression en fonction de 2 dates

Fermé
pumas51100 - 24 mars 2012 à 20:21
 pumas51100 - 6 avril 2012 à 08:34
Bonjour,
Mon fichier access concerne des ventes (plus précisement des commandes) de matos multimédia. A partir d'une Entité "COMMANDE" (Num_comm, Date_comm,...,Num_client) et une entité "CLIENT" (Num_client, Nom_client...), je voudrais supprimer un client qui n'a pas réalisé de commande depuis au moins 3 ans. La restrction serait bien sur la différence entre la date d'aujourd'hui et Date_comm.
Demandez moi en plus si ça peut vou aider, cette requête parait simple mais c'est tout le contraire.
Merci par avance.


A voir également:

4 réponses

castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
30 mars 2012 à 15:35
Bonjour
Dans la requete , comme precedemment tu mets la date =<#01/01/2009# et dessous EstNull.
Normalement tu devrais avoir tous les enregistrements avant le 01-01-2009.
Si tu reussis ta selection, tu tranformes cette requete en requetes d'effacement.
1
ta requete marche et elle m'affiche bien des commandes passée il y a plus de 3 ans mais j'ai des clients qui ont passé une commande recemment, il ne faut donc pas qu'elle m'affiche ces clients là.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
25 mars 2012 à 19:25
Bonjour
Si tes2 tables sont en relation un a plusieurs,
dans une requete basée sur les deux tables, en mode creation , nom client ; date de commande, tu mets comme critere le nom du client en question, puis la date voulue dela facon suivante =<#24/03/2012# dans le champ date commande
Tu auras tous les enregistrements pendant cette periode.
0
merci pour cette réponse mais je ne veux pas de critère de restriction sur un nom de client, et pas non plus afficher toutes les commandes inférieures à la date d'ajourd'hui. Je voudrais en effet supprimer ces clients qui n'ont pas passé de commandes depuis plus de 3ans, voici donc la restriction. Je ne sais pas si la requete est faisable ds ce sens.
merci.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
30 mars 2012 à 16:46
Bonjour
Dans mon message precedant, je me suis trompé pour la reference de date, Il faut <=#01/01/2009#au lieu de =<#01/01/2009#.si tu as le champ avec des enregistreements ou tu mets Est Null pas EstNull comme critere
0
slt. merci pour la réponse claire, je vais tester ça aujourd'hui. sinon, j'ai effectué cette requête qui me donnait un certain nb de resultats, pas tout à fait concluant mais, ça avance qd même les choses:

SELECT Client.Num_client, Commande.Num_commande
FROM Client INNER JOIN Commande ON CLIENT.Num_client=Commande.Num_client
WHERE Date_commande=(SELECT MAX(Date_commande) FROM Commande WHERE NOW>Date_commande+1095 AND GROUP BY Client.Num_client);

en changeant les signes > et < dans la requete imbriquée, ça donne un rst different, alors peut etre qu'en intégrant une autre requete imbriquée, ça marcherait. mais est-ce possible?
0