Forums Neueste Beiträge
 

Tageszahlen über größere Zeiträume ermitteln

01/06/2010 - 11:43 von Christoph Michalski | Report spam
Hallo,
mit folgender SQL-Abfrage möchte ich aus einem bestimmten Zeitraum die
Anzahl von Datensàtzen mit gleichem Datum im Feld "DatumFeld" ermitteln:
"SELECT DatumFeld As Datum, Count(*) As Anzahl " & _
"FROM TestTabelle " & _
"WHERE DatumFeld >= " & VonDatum & " AND DatumFeld <= " & BisDatum & " "
"GROUP BY DAY(DatumFeld) "
Auf diese Weise kann ich die "Tageszahlen" bestimmter Datensàtze ermitteln.
Es funktioniert alles sehr gut, aber nur wenn das Von-Datum und Bis-Datum
innerhalb eines Monats liegen. Liegt eins der Werte ausserhalb eines Monats,
so bekommen ich für die Monatstage, die in diesem Zeitraum mehrfach
vorkommen, die Summe der Datensàtze an diesem Tagen. Beispiel:
VonDatum = 01.01.2010
BisDatum = 01.06.2010
Im Ergebnis wird mir hier unter "01" die Summe der Datensàtze vom
01.01.2010, 01.02.2010, 01.03.2010... etc angezeigt.
Ich möchte aber unbedingt die Zahlen eines jeden Tages getrennt ermitteln.
Wie soll ich es anstellen???
bin für jeden Tipp dankbar
Gruß
Christoph
 

Lesen sie die antworten

#1 Helmut Meukel
01/06/2010 - 13:24 | Warnen spam
"Christoph Michalski" schrieb im
Newsbeitrag news:
Hallo,
mit folgender SQL-Abfrage möchte ich aus einem bestimmten Zeitraum die
Anzahl von Datensàtzen mit gleichem Datum im Feld "DatumFeld" ermitteln:
"SELECT DatumFeld As Datum, Count(*) As Anzahl " & _
"FROM TestTabelle " & _
"WHERE DatumFeld >= " & VonDatum & " AND DatumFeld <= " & BisDatum & " "
"GROUP BY DAY(DatumFeld) "
Auf diese Weise kann ich die "Tageszahlen" bestimmter Datensàtze ermitteln.
Es funktioniert alles sehr gut, aber nur wenn das Von-Datum und Bis-Datum
innerhalb eines Monats liegen. Liegt eins der Werte ausserhalb eines Monats,
so bekommen ich für die Monatstage, die in diesem Zeitraum mehrfach
vorkommen, die Summe der Datensàtze an diesem Tagen. Beispiel:
VonDatum = 01.01.2010
BisDatum = 01.06.2010
Im Ergebnis wird mir hier unter "01" die Summe der Datensàtze vom
01.01.2010, 01.02.2010, 01.03.2010... etc angezeigt.
Ich möchte aber unbedingt die Zahlen eines jeden Tages getrennt ermitteln.
Wie soll ich es anstellen???
bin für jeden Tipp dankbar
Gruß
Christoph





Hmm,

warum verwendest Du DAY(DatumFeld) ?
Was steht in DatumFeld *wirklich* drin?
Wenn es echt nur das Datum ist - ohne die Uhrzeit -
dann sollte GROUP BY DatumFeld das Richtige sein.
Enthàlt DatumFeld auch die Uhrzeit, z.B. weil Now() zum Eintrag
benutzt wurde, so ist schon der WHERE-Abschnitt nicht ganz richtig:
"WHERE DatumFeld >= " & VonDatum & " AND DatumFeld <= " & BisDatum &


und müsste entweder
"WHERE DatumFeld >= " & VonDatum & " AND DatumFeld < " & BisDatum &
oder
"WHERE DatumFeld >= " & VonDatum & " AND DatumFeld < " & (BisDatum + 1) &
heißen, jenachdem ob ausschließlich oder einschließlich BisDatum.
und man muss die Uhrzeit für das GROUP BY von DatumFeld entfernen.

Helmut.

Ähnliche fragen