PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 02/03/2015 09:46:16

Logiquefloue
Membre

demande d'aide sur une requete[Résolu]

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

#2 02/03/2015 10:53:19

rjuju
Administrateur

Re : demande d'aide sur une requete[Résolu]

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;

Hors ligne

#3 02/03/2015 12:47:48

Logiquefloue
Membre

Re : demande d'aide sur une requete[Résolu]

Elle fonctionne parfaitement big_smile

Merci Julien

Hors ligne

Pied de page des forums