[MySQL] trouver la derniére modification !

trouver la derniére modification ! [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 03-10-2008 à 15:21:48    

Bonjour,
 
J'ai actuellement 2 tables :
1 table fiche => dans laquelle j'ai des fiches :)
1 table action => dans laquelle je stock des actions faite sur une fiche.
 
je voudrais par une requête SQL retrouver toute les fiches dont la dernière modification remonte à 10 jours ou plus, mais je ne m'en sort pas.
 
Voici le requête que j'utilise :

Code :
  1. select f.numFiches,max(effectuerle) from fiches f,actions a
  2. where f.numFiches = a.numFiches and and numetat <= 4 effectuerle <= "2008-09-23"
  3. group by f.numFiches


 
numetat correspond à l'etat de la fiche, dans cette exemple on exclu les fiche qui ont été clôturées.
mais il me retourne la quasi totalité des fiches, en prenant en compte toutes les modifications !!
 
je ne sais pas comment faire la restriction que je veux !
 
Aidez moi  :cry:  
Merci
 
Edit : précision.


Message édité par stef_dobermann le 03-10-2008 à 15:24:56

---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 03-10-2008 à 15:21:48   

Reply

Marsh Posté le 03-10-2008 à 18:53:11    

Alors une idée ?


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 03-10-2008 à 19:03:30    

not exists avec une sous-requête qui recherche les modifs de moins de 10 jours

Reply

Marsh Posté le 03-10-2008 à 20:01:10    

dsl mais je ne te suit pas !


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 03-10-2008 à 20:25:32    

ben c pourtant simple... tu cherche tous les truc qui n'ont pas été modifiés il y a moins de 10 jours...
 
donc tu cherches tous ceux qui ont été modifiés il y a moins de 10 jours (l'inverse de ton filtre actuel), et tu n'as qu'à prendre tous les autres. un not exists fait parfaitement l'affaire

Reply

Marsh Posté le 08-10-2008 à 12:56:02    

bonjour,
 
Ni aurait-il pas un moyen de passer par une requête imbriqué du style

Code :
  1. select numFicheSAV from fichesav where [....]
  2. select max(effectuerle) as effectuerle from fichesav f, actionsav a
  3. where f.numFicheSAV = a.numFicheSAV and numetatssav <= 4
  4. group by f.numFicheSAV


 
mais je ne sais pas comment la finir ...
ou s'il y a une possibilité de la finir


---------------
Tout à commencé par un rêve...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed