Bonjour,
J'ai la requette suivante qui me retourne les dernière visite (par date) lié à un couple intervention/equipement :
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
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
Partager