Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je vous sollicite dans le cadre d’une requête que je n’arrive pas à coder.
J’ai deux tables
Table travaux :
CT dateT
Obj1 2011-01-01
Obj1 2012-01-01
Obj2 2014-01-01
Obj4 2015-01-01
Table mesure :
CM mesure dateM
Obj1 1 2010-05-01
Obj1 4 2013-01-01
Obj1 8 2015-01-01
Obj2 0.5 2015-01-01
La requête que j’essaye de faire consiste à trouver la mesure la plus faible de «CM » depuis la date d. d = la date la plus récent de CT où CT=CM
Dans notre exemple le résultat attendu est
CM mesure
Obj1 4
Obj2 0.5
J’ai essayé cette requête mais elle me donne une erreur car l'expression de HAVING n'est pas correct
SELECT CM, min(mesure) FROM mesure INNER JOIN travaux ON ((CM = CT)) GROUP BY CM HAVING (dateM>max(dateT))
Merci d'avance
Dernière modification par Logiquefloue (02/03/2015 13:01:38)
Hors ligne
Bonjour,
cette requête devrait fonctionner :
SELECT t.ct, min(m.mesure) as mesure
FROM (SELECT ct, max(datet) as datet FROM travaux t GROUP BY ct) t
JOIN mesure m ON m.cm = t.ct AND m.datem >= t.datet
GROUP BY t.ct
ORDER BY t.ct;
Julien.
https://rjuju.github.io/
Hors ligne
Elle fonctionne parfaitement
Merci Julien
Hors ligne
Pages : 1