OVH Cloud OVH Cloud

Comment éliminer les doublons dans le résultat d'une requête

1 réponse
Avatar
Denis P
Bonjour tout le monde,

Supposons une table Activite lié à une table Service. La table Activité
enregistre chaque activité pour un service.

Table Activité

act_id
act_serv_id
act_heure

Je veux récupérer de la table activité la dernière activité pour chaque
service ainsi que l'heure de l'activité. Disons que le contenu de la table
ressemble à ceci

act_id act_serv_id act_heure
1 1 10:00
2 1 13:00
3 2 11:30
4 1 16:15
5 2 15:45

Je voudrais donc que le résultat de ma requête me donne

act_id act_serv_id act_heure
4 1 16:15
5 2 15:45

Si je fais une requête pour récupérer seulement la dernière activité pour
chaque service sans tenir compte de l'heure pas de problème je fais

SELECT act_serv_id, MAX(act_id)
FROM Activite
GROUP BY act_serv_id

Par contre si je fais la même chose en ajoutant l'heure, alors là j'obtiens
tous les enregistrements puisque l'heure est différente pour chacun.

SELECT act_serv_id, act_heure, MAX(act_id)
FROM Activite
GROUP BY act_serv_id, act_heure

Puisque je suis obligé de mettre et le service et l'heure dans la clause
GROUP BY, forcément je reçois tous les enregistrements.

Donc il doit bien avoir une façon de regrouper mes enregistrements pour
obtenir seulement la dernière activité pour chaque service en ayant l'heure
de cette activité d'inclus dans le résultat de ma requête.

En passant ma base est sous Access 2000.

Merci pour vos toujours précieuses suggestions.

Denis P

1 réponse

Avatar
Denis P
Petite précision, en fait j'ai plusieurs autres champs dans ma table
Activite, donc je ne peux pas simplement faire un MAX sur l'heure également.
Ça serait trop simple. En fait je dois récupérer la dernière activité avec
le numéro du service, la date et l'heure, le nom de l'employé et une
description du service.

Donc comment obtenir ce résultat.

Excusez-moi d'avoir omis quelques détails.

Denis P
"Denis P" a écrit dans le message de
news:
Bonjour tout le monde,

Supposons une table Activite lié à une table Service. La table Activité
enregistre chaque activité pour un service.

Table Activité

act_id
act_serv_id
act_heure

Je veux récupérer de la table activité la dernière activité pour chaque
service ainsi que l'heure de l'activité. Disons que le contenu de la table
ressemble à ceci

act_id act_serv_id act_heure
1 1 10:00
2 1 13:00
3 2 11:30
4 1 16:15
5 2 15:45

Je voudrais donc que le résultat de ma requête me donne

act_id act_serv_id act_heure
4 1 16:15
5 2 15:45

Si je fais une requête pour récupérer seulement la dernière activité pour
chaque service sans tenir compte de l'heure pas de problème je fais

SELECT act_serv_id, MAX(act_id)
FROM Activite
GROUP BY act_serv_id

Par contre si je fais la même chose en ajoutant l'heure, alors là


j'obtiens
tous les enregistrements puisque l'heure est différente pour chacun.

SELECT act_serv_id, act_heure, MAX(act_id)
FROM Activite
GROUP BY act_serv_id, act_heure

Puisque je suis obligé de mettre et le service et l'heure dans la clause
GROUP BY, forcément je reçois tous les enregistrements.

Donc il doit bien avoir une façon de regrouper mes enregistrements pour
obtenir seulement la dernière activité pour chaque service en ayant


l'heure
de cette activité d'inclus dans le résultat de ma requête.

En passant ma base est sous Access 2000.

Merci pour vos toujours précieuses suggestions.

Denis P