Bonjour,
Je ne parviens pas à effectuer une requête correcte.
Voici l'énoncé:
J'ai une table "table1" avec une info "prixVente" et l' "id" de mon objet ainsi que d'autres champs dont le "statusId" en temps réel de l'objet.
Pour chaque objet, à chaque mouvement (donc changement de "statusId"), j'enregistre dans "table2", tous ces mouvements avec "objetId", "date" (date actuel de la modification) et l'enregistrement du "statusId" actuel et du précédent "statusIdOld"
J'aimerais en fait, pour une période donnée, sortir la date du dernier "statusId" pour chaque "objetId".
Je pensais donc faire un truc comme ceci:
SELECT tmp.prixVente, tmp.objetId, tmp.dateAnalyse, tmp.statusId FROM (SELECT t1.prixVente, t2.statusId, t2.carId, MAX(DATE(t2.date)) AS dateAnalyse FROM table2 AS t2 INNER JOIN table1 AS t1 ON t1.id=t2.objetId WHERE t2.date BETWEEN "2013-01-01" AND "2013-09-31" ) tmp
Mais ça ne me retourne pas le résultat attendu. 
Si j'ai 10 objets en DB, cela devrait me retourner les 10 objets avec le dernier enregistrement UNIQUEMENT (donc date la plus élevée) pour chacun de ces objets.
Que dois-je modifier? J'ai l'impression que le MAX(Date) n'est pas la bonne approche.
Merci
Partager