Comment afficher la dernière entrée pour un champ

Résolu/Fermé
Apprenti - 3 août 2018 à 17:04
 Pseudo... - 9 août 2018 à 10:30
Bonjour,

J'ai une base de donnée pour gérer le mouvent de bennes.

Dans cette table j'ai un champs avec un numéro automatique, une date, le numéro de la benne en question, le lieu ou elle se trouve.

par exemple j'ai la benne 1,2,3,4 qui sont au dépôt depuis longtemps et la benne 5 est parti chez un client.
de ce fait j'ai deux enregistrement pour la benne 5 le premier qui indique qu'elle est au dépôt et un autre avec une date différente pour dire qu'elle est chez le client.

J'aimerais faire une requête qui affiche uniquement le dernière enregistrement pour chaque benne sans compter sur le champ date.

Je sais pas si c'est très clair ^^

Merci pour votre aide.

1 réponse

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
Modifié le 3 août 2018 à 21:18
bonjour,
tu es peu clair: tu commences un exemple, et puis tu arrêtes avant d'avoir été plus précis. "sans compter sur le champ date", cela signifie quoi? c'est quoi "le dernier enregistrement"? celui qui a la date la plus récente, celui qui a le numéro automatique le plus grand?
moi je ferais ainsi:
select t1.* from table as t1, (select num, max(dt) as mdt from table group by num) as t2
where t1.num = t2.num and t1.dt=t2.mdt
0
Bonjour,

Merci pour ta réponse

Par contre je touche pas trop au SQL mes compétences dans ce domaine sont très limité.

Quand je dit de pas prendre en compte le champ "date" c'est pour ne pas faire une séléction par apport a ce champ car le résultat que je veux afficher peux avoir des lignes (enregistrement) d'hier comme des lignes d'il y a un an par exemple. (je ne veux pas demander à ACCESS de m'afficher toutes les lignes à partir d'une date donnée)

Le dernier enregistrement c'est la date la plus recente.

Ce que je veux afficher c'est la ligne avec la date la plus récente pour chaque benne

Par exemple la benne 1 est au dépot depuis le 01/01/2017 et elle n'a pas bouger depuis
La benne 2 était au dépôt le 01/01/2017 mais entre temps elle est partie chez un client par exemple le 01/06/2017

Dans ce cas j'aimerais afficher les lignes suivantes :
01/01/2017 > benne 1 > dépôt
01/06/2017 > benne 2 > nom du client

Je ne veux pas voir la ligne 01/01/2017 pour la benne 2 car il y a eu un mouvement sur cette benne entre temps

J'éspère être plus clair.
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > Apprenti
6 août 2018 à 10:41
dans ce cas, ma suggestion s'applique. il faut l'adapter en tenant compte des noms de ta table et de tes champs.
0
Par contre je comprend pas ce que je doit faire avec ça je ne connait pas grand chose au SQL
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > Apprenti
6 août 2018 à 15:01
pour commencer, dans le texte que j'ai fourni, tu remplaces chaque occurrence de table, num et dt par le nom de ta table et les noms de tes champs.
0
Je comprend toujours pas ta ligne de SQL et comment remplacer avec mes réf
Je comprend pas beaucoup le SQL il faudrais m'expliquer à quoi ça correspond
0