Double datage de valeurs et selection des plus recentes [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 08-04-2009 à 13:01:47
Bon je crois avoir trouve, je mets la solution au cas ou ca puisse servir a quelqu'un d'autre:
Le probleme vient du fait que la fonction Max() ne considere pas chaque entree, mais plutot les valeurs d'un colonne.
Du coup il faut contourner le probleme avec une sous-query
Code :
|
Ainsi pour chaque object et chaque date_value, on va recupere la value correspondant a l'entry_date la plus recente.
Marsh Posté le 08-04-2009 à 12:13:18
Bonjour a tous,
J'ai un probleme sur le double datage de donnees et leur selection. En gros, j'ai une table qui contient des donnees relatives a la valeur d'un objet pour une date donnee.
Cette valeur n'est pas forcement connue a la date T et peut fluctuer avant que sa valeur soit definitivement determinee.
Par exemple, le prix de l'objet A au 01-04-2009 avait ete estime etre 400€ le 29-03-2009, revu a 390€ le 02-04-2009 et le reporting nous dit le 03-04-2009 qu'en fait il etait a 410€.
Au lieu d'update la table pour changer la valeur au fur et a mesure, on veut pouvoir garder une trace des fluctuations des estimations. Ainsi la table a les champs suivant:
id_object | date_value | entry_date | value
Si on reprend mon exemple on aurait les entrees suivantes :
001 | 01-04-2009 | 29-03-2009 | 400
001 | 01-04-2009 | 02-04-2009 | 390
001 | 01-04-2009 | 03-04-2009 | 410
Maintenant ce que j'aimerai c'est recuperer dans une query l'entree pour chaque objet qui corresponde au dernier prix que l'on aura entre (prix qui s'avere etre le plus exact).
J'ai tente d'utiliser cette query:
Mais ca ne me donne pas les entry correspondantes a la Max(entry_date) qui sont celle que j'aimerai pour chaque date_value et id_object.
Je ne dois pas regarder le probleme comme il faut mais je ne vois pas trop d'autre solution si ce n'est de selectionner chaque id_object/date_value et de refaire une query ou je selectionnerai la valeur maximum