SQL-Abfrage

itsection

Mitglied
Hallöchen Leute,

ich habe da ein Problem mit einer SQL-Abfrage.
Ich habe in meiner Access Datenbank folgende Tabelle:

WerWoWannWieviel:
Datum
Nachname
Vorname
Arbeitsort
Betrag

Nun will ich, daß mir der Betrag summiert angezeigt wird, der an einem bestimmten Arbeitsort an einem bestimmten Tag (Datum) war.
Zum Beispiel steht bei Arbeitsort "Kass1" und "Kasse2" drinnen. Am 26.04.2003 wurde von Mitarbeiter1 100,- Euro in Kasse1 eingenommen. Von Mitarbeiter2 200,- Euro.
Nun bräuchte ich eine SQL-Abfrage, die mir angibt wieviel insgesammt (Also "SUM (Betrag)") am 26.04.2003 in Kasse1 eingenommen wurde.

Ich habe es schon so versucht:

SELECT Datum, Arbeitsort, SUM (Betrag) AS Gesamtbetrag FROM WerWoWannWieviel GROUP BY Datum, Arbeitsort

Jetzt zeigt es mir aber nur alle summierten Beträge an, die an einem Tag an einem Arbeitsort eingenommen wurden. Ich bräuchte aber einen bestimmten Tag.
Also ich denke mal irgendwie ein "Datum LIKE "26.04.2003"" und irgendwie noch ein "Arbeitsort LIKE "Kasse1"".

Ich habe aber keine Ahnung wie die SQL-Abfrage auszusehen hat. Ich bekomme es einfach nicht hin.
Könnte mir da bitte jemand die SQL-Abfrage machen?

Im voraus schonmal Dankeschön

Grüssle
itsection
 
Servus!

Tabelle:
tab1

Felder:
index
Datum
Nachname
Vorname
Arbeitsort
Betrag

_____________

Code:
SELECT tab1.Datum, tab1.Arbeitsort, Sum(tab1.Betrag) AS SummevonBetrag
FROM tab1 GROUP BY tab1.Datum, tab1.Arbeitsort HAVING (((tab1.Datum)=#1/1/2003#) AND ((tab1.Arbeitsort)="ort1"));

Bei mir liefert das das gewünschte Ergebnis ...

index	Datum	     Nachname	Vorname	Arbeitsort	Betrag
1	01.01.2003	d	d	ort1	     10.000,00 €
2	01.01.2003	d	d	ort1	    150.000,00 €
3	01.01.2003	d	d	ort2	      9.999,00 €
4	01.02.2003	d	d	ort3	        651,00 €

Hierbei gibt mir die Abfrage am 1.1.2003 und Ort1 160000,00 € zurück.

Gruss Tom
 
Hi,

ersteinmal Danke für die Abfrage.
Ich habe es jetzt so gemeistert:

PHP:
"SELECT Datum, Arbeitsort, SUM (Betrag) AS Gesamtbetrag FROM
WerWoWannWieviel WHERE Datum LIKE '" + EingabeDatum + "' AND
Arbeitsort LIKE '" + EingabeArbeistort + "' GROUP BY Datum, Arbeitsort"

EingabeDatum = irgendeinenString  z.B. 01.01.2003
EingabeArbeistort = irgendeinString2 z.B. Kasse1

Jetzt habe ich aber noch ein Problem,
wenn ich jetzt nicht nur vom 01.01.2003 die Beträge addiert haben
will, sondern vom ganzen Monat Januar, also vom 01.01.2003 -
31.01.2003, wie kann ich denn das verwirklichen?
Ich habe es schon mit BETWEEN versucht, doch dann zeigt es sie mir
nur an, die Beträge an den einzelnen Tagen, ich will sie aber
summiert haben. Wie kann ich denn das machen?

Grüssle
itsection
 
Zuletzt bearbeitet:
Servus!

Versuchs mal hiermit ...

Code:
SELECT tab1.Arbeitsort, Sum(tab1.Betrag) AS SummevonBetrag
FROM tab1
WHERE (((tab1.Datum) Between #1/1/2003# And #6/1/2003#))
GROUP BY tab1.Arbeitsort
HAVING (((tab1.Arbeitsort)="ort1"));

liefert mit bei:

Code:
index	Datum	     Nachname	Vorname	Arbeitsort	Betrag
1	01.01.2003	d	d	ort1	     10.000,00 € 
2	01.01.2003	d	d	ort1	     150.000,00 €
3	01.01.2003	d	d	ort2	     9.999,00 €
4	01.02.2003	d	d	ort1	      651,00 €

als Ergebnis

Arbeitsort SummevonBetrag
ort1 160.651,00 € (vom 1.1.2003 bis zum 6.1.2003)

Gruss Tom
 
Hi,

ich habe jetzt mal folgende Werte drinnen

Datum Betrag Arbeitsort
01.01.2003 15 ort1
01.01.2003 21 ort1
08.01.2003 22 ort1
25.01.2003 23 ort1
01.02.2003 3000 ort1
02.02.2003 4000 ort1
15.02.2003 2000 ort1
21.02.2003 1000 ort1

Und mit dieser Abfrage hier:
PHP:
SELECT tab1.Arbeitsort, Sum(tab1.Betrag) AS SummevonBetrag
FROM tab1 WHERE (((tab1.Datum) Between #1/2/2003# And #28/2/2003#))
GROUP BY tab1.Arbeitsort HAVING (((tab1.Arbeitsort)="ort1"));

liefert er mir das Ergebnis 7045.
Es sollte doch aber 10000 rauskommen. Er addiert mir also die beiden
Einträge vom 08.01.2003 und vom 25.01.2003 auch mit dazu.

Wo könnte denn da noch der Fehler liegen? Ich habe auch schon versucht anstatt
PHP:
Between #1/2/2003# And #28/2/2003#
das hier
PHP:
Between #01/02/2003# And #28/02/2003#
eingefügt, doch funktioniert auch nicht.
Könntest Du mir bitte nochmal helfen?

Grüssle
itsection
 
Zuletzt bearbeitet:
Servus!

Code:
SELECT tab1.Arbeitsort, Sum(tab1.Betrag) AS SummevonBetrag
FROM tab1
WHERE (((tab1.Datum) Between #2/1/2003# And #2/28/2003#))
GROUP BY tab1.Arbeitsort
HAVING (((tab1.Arbeitsort)="ort1"));

Bringt bei mir bei deinen Daten das ergebnis 10000 € ...?

Schau mal nochmal...

Gruss Tom

EDIT:

Schau mal auf das Datumsformat ...
 
Zuletzt bearbeitet:
Hi,

habe ich gemacht,
bei mir heisst es jetzt:
Between #2/1/2003# AND #2/28/2003#

aber es kommt wirklich immer 10045. der nimmt mir immer die letzten zwei vom Januar noch mit.
 

Neue Beiträge

Zurück