2009-05-13 6 views
1

Ich habe Daten, wie unten in einer MS Access-Datenbank gespeichert:laufende Zählung der unterschiedlichen Werte in Access

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

Ich versuche, eine Abfrage zu erstellen, die den täglichen Betrieb Anzahl der Unique User zeigt. Zum Beispiel:

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

Was ist der beste Weg, dies zu erreichen?

Antwort

3

In den meisten SQL-Implementierungen Sie können wählen Sie die Aggregatfunktion count (distinct Benutzer) verwendet wird. Aber Access unterstützt dieses Konstrukt nicht. Ich denke, das Beste, was Sie tun können, ist, die unterschiedlichen Werte in einer Unterabfrage auszuwählen und sie zu zählen.

Ich wollte eine Abfrage schreiben, aber diese link scheint einen guten Job zu machen.

HTH Tom

0

Ihre Anfrage wird in etwa so aussehen ... kann es allerdings nicht ohne die Daten testen:

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

Leider Zugang Count() zählt alle Werte, nicht nur verschieden. – mavnn

+0

Wenn es eine GROUP BY-Klausel gibt, sollte Count() nur die Elemente in der Gruppe zählen ... in diesem Fall wären es für jedes einzelne Datum wie viele. –

+0

In der Tat. Leider gibt das den OPs nicht das gewünschte Ergebnis für das laufende Zählfeld. – mavnn

0

ich habe es geschafft! Eine einfache Lösung ist die beste: Es wird kein SQL-Code benötigt.

enter image description here

in Access Abfrage-Entwurf,

Column 1 = 
Field=Date 
tablename=yourname 
Total=Groupby 
Column2 = 
Field=Date 
Table=yourname 
Total=Count 
Verwandte Themen