Bonjour,
Je dispose d'une table composée de 4 champs principaux :
- evaid l'identifiant numérique long
- evadat une date
- evaris la référence à un champ père numérique long
- evafin une date
Je voudrais sélectionner les enregistrements dont la date evafin est renseignée et, dans le cas où des enregistrements ont le même père, ne prendre que ceux dont la date evadat et la plus récente.
J'ai tout d'abord testé en opérant un regroupementDans ce cas, il m'affiche tous les enregistrements et ne filtre pas les enregistrements qui ont le même champ père.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT tEVA.evaid, Max(tEVA.evadat) AS MaxDeevadat, tEVA.evaris, tEVA.evafin FROM tEVA GROUP BY tEVA.evaid, tEVA.evaris, tEVA.evafin HAVING (((tEVA.evafin) Is Not Null));
Puis j'ai testé en filtrant la date avec une fonction de domaineCela fonctionne tant que les dates de fin evafin sont renseignées. S'il y en a une qui ne l'est pas, aucun enregistrement concerné par le champ père n'est affiché.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT tEVA.evaid, tEVA.evadat, tEVA.evaris, tEVA.evafin FROM tEVA WHERE (((tEVA.evadat)=DMax("evadat","tEVA","evaris=" & [evaris])) AND ((tEVA.evafin) Is Not Null));
Là... je sèche. Peut être avec des requêtes imbriquées ?
Partager