Sélection de l’enregistrement le plus récent
Bonjour j'ai une table de ce style
date |
tag |
value |
2010-10-10 11:24:00.000 |
A |
5 |
2010-10-10 11:25:00.000 |
A |
10 |
2010-10-10 11:32:00.000 |
B |
20 |
2010-10-10 12:02:00.000 |
A |
30 |
2010-10-10 12:06:00.000 |
B |
40 |
et j'aimerais récupérer la valeur a la date la plus grande (inférieur ou égale a une date)..
donc j'ai fait ceci
Code:
1 2 3 4 5 6 7 8 9 10
| select *
from xx
inner join
(SELECT xx.tag as t,
MAX(xx.date) as d
FROM xx
Where xx.date <= '2010/10/10 11:32:00'
group by xx.tag) a
on a.t = xx.tag and a.d = xx.date
order by XX.tag |
ce qui me donne
date |
tag |
value |
t |
d |
2010-10-10 11:25:00.000 |
A |
10 |
A |
2010-10-10 11:25:00.000 |
2010-10-10 11:32:00.000 |
B |
20 |
B |
2010-10-10 11:32:00.000 |
et c'est bien mon résultat attendu
bref j'aimerais savoir si il n'y aurait pas une écriture plus simple (plus sexy)
si vous avez une idée
merci