Bonjour,

Je construit une base de donnée avec 2 tables:

- Organisme
- Formation

La relation qui lie ces 2 table est que 1 organisme peut proposer plusieurs formation, une formation n'est effectué que par un organisme (relation 1-n).

Outre tout les autres champs, la table formation contient un champs Fdate_modif, qui enregistre la date de la dernière mise à jour de la formation.

Je voudrais faire une requête qui donne comme resultat la liste de tout les organisme qui n'ont pas mis a jour de formation depuis une date donnée.

Pour cela je suis parti sur une piste de requêtes imbriquées:

la requête

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT ONom, MAX(Fdate_modif) FROM Organisme, Formation WHERE OID=Forganisme GROUP BY Forganisme;
me donne la liste de tout les organismes ayant au moins 1 formation, et la date de la dernière formation qu'il a modifiée.

Je voudrais maintenant que seul les organismes pour lesquels cette date est inférieur a une date donnée soit renvoyés.

J'ai essayé avec une clause AND qui trie sur la date:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT ONom, MAX(Fdate_modif) FROM Organisme, Formation WHERE OID=Forganisme AND Fdate_modif<2006-10-08 GROUP BY Forganisme;
Mais la requête fait le trie sur le MAX après avoir fait la comparaison sur la date, et les Organismes qui ont une formation récente et une formation ancienne se retrouve selectionne alors que je ne veux que ceux qui n'ont que des formations anciennes

Je précise que j'ai lu le tuto sur les requêtes imbriqués sur develloppez.com, que j'utilise une bdd mysql, et que malgré tout les efforts depuis une semaine, je n'arrive pas a trouver la bonne requête.

J'espère que mon message n'est pas trop long et suffisament clair, merci de votre aide.

yohann