Bonjour,

J'ai la requette suivante qui me retourne les dernière visite (par date) lié à un couple intervention/equipement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT 
                       LAST(x.intervention_id)    AS intervention_id, 
                       LAST(x.equip_vess_id)      AS equip_vess_id, 
                       LAST(x.visit_id)           AS visit_id, 
                       LAST(x.finish_dttm)        AS finish_dttm,
                    FROM (SELECT i1.intervention_id, v.visit_id, v.equip_vess_id, v.finish_dttm, v.finish_meter_value
                            FROM interventions i1, interventions i2, visits v
                           WHERE i1.intervention_log_group_id = i2.intervention_log_group_id AND i2.intervention_id = v.intervention_id
                           ORDER BY v.finish_dttm) x
                   GROUP BY x.equip_vess_id
Cette requette ne retourne pas la derniere ligne en date du groupe, mais uen autre.
en creusant nous avons finalement trouvé qu'il fallais qye l'order by soit sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 i1.intervention_id,v.equip_vess_id,v.finish_dttm
ce qui ne parait pas logique.
En effet il semble que l'order by regroupe le résultat de la sous requette sans tenir compte du tri.
Mon problème est résolu, mais j'aimerias bien avoir comprendre ou se trouve l'erreur (dans ma logique ou dans le moteur postgres)

Merci,

P