Bonjour,
Après avoir cherché un moment en vain, je m'en remet à vous pour peut-être tenter de trouver une solution !
J'ai une table de relevés météo (meteo_releves) ayant pour clé primaire les champs num_station (identifiant une station météo) et date_heure (date et heure du relevé, il y en a toutes les heures à toutes les trois heures).
cette table contient ensuite toutes les valeurs relevées (temperature, humidite, pression, etc...)
Faisons simple, je désirerai récupérer les derniers relevés de température pour chaque station, ainsi imaginons que la table contienne ceci:
num_station | date_heure | temperature
00001 | 2004-03-30 10:00 | 17.6
00001 | 2004-03-30 11:00 | 18.2
00001 | 2004-03-30 12:00 | 19.1
00002 | 2004-03-30 10:00 | 16.2
00002 | 2004-03-30 11:00 | 16.9
00003 | 2004-03-29 23:00 | 5.3
00003 | 2004-03-30 08:00 | 9.6
00003 | 2004-03-30 10:00 | 12.5
La requete devrait me retourner:
00001 | 2004-03-30 12:00 | 19.1
00002 | 2004-03-30 11:00 | 16.9
00003 | 2004-03-30 10:00 | 12.5
J'ai un peu tout essayé, j'arrive à récupérer les max(date_heure) pour chaque station avec un group by du style:
SELECT num_station, max(date_heure), temperature
FROM meteo_releves
GROUP BY num_station
...mais les températures associées ne sont pas celles dont date_heure = max(date_heure) pour chaque groupe (mais les premieres rencontrées dans la table pour chaque groupe)
Si vous avez une idée... un grand merci d'avance !
Message édité par Agatha le 30-03-2004 à 14:33:18