C’est tellement simple sous Excel de retrouver la valeur « précédente » qui se trouve à la cellule de la ligne « au-dessus ».
Seulement Ici, ma table Access ressemble à ça :
J’ai plusieurs véhicules dont je relève le compteur à chaque plein. [Id] est un numéro auto dont je ne peux évidemment pas me servir pour retrouver le plein « précédent ».
Dans une table de base de données, les lignes sont un peu comme des billes mélangées dans un sac et retrouver la ligne « précédente » dans ces conditions n’a pas de sens.
Et pourtant il faudrait obtenir :
Sauriez-vous trouver le jeu de requête/sous-requête pour obtenir le résultat ci-dessus ?
Uniquement avec les assistants, bien sûr ! QBEO*
*Query By Example Only
On commence par une requête intermédiaire R_DatePrecedente.
Celle-ci nécessite une auto-jointure sur la table [Journal]. Dans l’assistant il faut ajouter une deuxième fois la table Journal qui prendra automatiquement l’alias [journal_1].
Pour chaque plein d’un véhicule, on recherche les dates des pleins précédents et on retient la date du plein le plus récent (avec Max(Journal_1.DatePlein)).
La requête R_final reprend la requête précédente comme sous-requête :