{Access} requête imbriquée

michou -  
 michou -
Bonjour,
j'ai une table log dans ma base donnéss access de la structure suivante :

mle date_entree activité
1 01/01/09 aaa
1 01/01/09 bbb
1 01/01/09 ccc
1 05/01/09 aaa
2........

j'aimerais faire une requete SQL qui me permettra d'afficher le nombre d'entrées par matricules mais en comptant une seule fois la date, cad, pour le matricule 1 par exemple , je dois avoir en résultat 2 et non pas 4 (la date 01/01/09 doit etre comptée une seule fois). j'ai pensé à utiliser les requetes imbriquées maisj'avoue que je me suis embrouié.
Je serai reconaissant si klk un a une idée.

Merci d'avance

4 réponses

CaPiT Messages postés 609 Date d'inscription   Statut Membre Dernière intervention   51
 
Bonjour,

c'est trop flou pour qu'on puisse t'aider.

Quel rapport entre matricule et la table log?

je dois avoir en résultat 2 et non pas 4" Gné?

Donne nous plus de détails!
0
michou
 
Tout d'abord merci de ta réponse. en fait j'ai donné un exemple du contenu de ma table "log" dont les champs sont : matricule, date d'entree, activité .... Mon but est de compter le nombre de jours d'entrees de tous les matricules, donc si le contenu de ma table est le suivant :

Matricule date_entree activite .....
1 01/01/09 aaa
1 01/01/09 bbb
1 01/01/09 cccc
1 04/01/09 dddd
2 *****

je voudrais que la requete me retourne le nombre de jours d'entrées du matricule "1" par exemple, soit 2 , et non pas le nombre d'entrées "4". En fait, la date "01/01/09" doit etre comptée une seule fois.

J'espere avoir été plus clair cette fois, Et merci encore
0
CaPiT Messages postés 609 Date d'inscription   Statut Membre Dernière intervention   51
 
Ok là j'ai bien compris le soucis.
Il faut en effet faire un requête imbriquée.
Peux tu montrer ta requête existante (celle qui te retourne le nb d'entrée 4)?
0
michou
 
En fait les résultats de ma requête sont très incohérents :(. voici la premiere requete :
SELECT log.mle, log.date_entree FROM log
WHERE (((log.status)='Original'))
GROUP BY log.mle, log.start_date;

cette requete retourne en résultat:

matricule date_entree
1 01/01/09
1 02/01/09
...

C'est bien parce que la requete n'affiche la date q'une seule fois. Maintenant j'aimerais faire une deuxieme requete qui comptera le nombre de lignes résultantes de la premiere ci dessus, et ce par matricules, mais je ne sais pas comment faire et je ne sais meme pas si mon approche est correcte
0
CaPiT Messages postés 609 Date d'inscription   Statut Membre Dernière intervention   51
 
Je n'ai rien pour faire des tests c'est assez embêtant.

Essaie :

SELECT log.mle, COUNT(log.date_entree) FROM log
WHERE (((log.status)='Original'))
GROUP BY log.mle, log.start_date;
0
michou
 
non je l'ai déjà essayé et ça marche pas, le résultat retourne le nombre de lignes et par date et par matricules, cad, tjrs pour le matricule "1":

matrciule compte date
1 2 01/01/09
1 1 02/01/09

mais c'est pas le résultat souhaité.
0
CaPiT Messages postés 609 Date d'inscription   Statut Membre Dernière intervention   51
 
SELECT log.mle, COUNT(SELECT log.date_entree FROM log
GROUP BY log.date_entree) FROM log WHERE ((log.status)='Original') GROUP BY log.mle;
0
michou
 
je te remercie pour ton implication caPiT :). cette requete semble plus cohérente , mais j'ai eu le message d'erreur suivant : "cette sous requete peut retourner au plus un enregistrement"
0