2009-05-13 8 views
1

j'ai des données stockées comme ci-dessous dans une base de données MS Access:compte courant de valeurs distinctes dans Access

Date   User 
20090101  1001 
20090101  1002 
20090102  1001 
20090103  1001 
20090103  1003 

je tente de créer une requête qui montre le nombre de fonctionnement quotidien d'utilisateurs uniques. Par exemple:

Date  Daily Count Unique User Running Count 
20090101 2    2 
20090102 1    2 
20090103 2    3 

Quelle est la meilleure façon d'y parvenir?

Répondre

3

Dans la plupart des implémentations de SQL vous pouvez sélectionner à l'aide du nombre de fonction d'agrégation (utilisateur distinct). Mais Access ne supporte pas cette construction. Je pense que le mieux que vous puissiez faire est de sélectionner les valeurs distinctes dans une sous-requête et de les compter.

j'allais écrire une requête, mais ce link semble faire un bon travail.

HTH Tom

0

Votre requête ressemblera à quelque chose comme ça ... ne peut pas tester sans les données si:

SELECT Date, Count(Date) As [Daily Count], Count(User) As [Unique User Running Count] 
FROM TableName 
GROUP BY Date 
+0

Malheureusement, Nombre d'accès() compte toutes les valeurs, non seulement distinctes. – mavnn

+0

Quand il y a une clause GROUP BY, le comte() ne doit compter les éléments du groupe ... dans ce cas, il serait combien pour chaque date distincte. –

+0

En effet. Malheureusement, cela ne donne pas le résultat escompté OP pour le champ de compte courant. – mavnn

0

je l'ai fait! Une solution simple est la meilleure: pas de codage SQL nécessaire.

enter image description here

Dans Access, Création de requête,

Column 1 = 
Field=Date 
tablename=yourname 
Total=Groupby 
Column2 = 
Field=Date 
Table=yourname 
Total=Count 
Questions connexes