Comment éliminer les doublons dans le résultat d'une requête
1 réponse
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
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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" <denispronovostNospam@sympatico.ca> a écrit dans le message de
news:eeoDLrovDHA.2048@TK2MSFTNGP10.phx.gbl...
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
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