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
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT ONom, MAX(Fdate_modif) FROM Organisme, Formation WHERE OID=Forganisme GROUP BY Forganisme;
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:
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
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;
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
Partager