SQL Befehl (SQLIte + MySQL)

TheLuBu

Grünschnabel
Hallöchen,

Ich habe ein Problem mit einer Update Query, ich kriege die nicht so hin wie es sein soll ;)

ALso zum AUfbau der Datenbank:
Es gibt 3 Tabellen, tblStorno, tbldata, tblErgebnis

In der Tabelle Stornos stehen u.A Rechnungsnummern (die anderen Spalten sind unwichtig für diese Abfrage ;) ) , die Spalte heißt RE_Num
In der Tabelle tblData stehen ebenfalls die Rechnungsnummern RE_Num, das Datum und der Verkäufer
In der Tabelle tblErgebnis gibt es den Verkäufer, das Datum und die Anzahl an Stornos

Die Daten werden automatisch eingespielt, jetzt zu dem Problem.
Die Anzahl an Stornos in der tblErgebnis will ich über einen UPDATE Befehl eintragen.

Hier komme ich aber nicht weiter. Die Stornos sollen also passend zu dem Verkäufer und dem entsprechenden Tag zugeordnet werden.

Hier mein erster Versuch ;)
Code:
UPDATE tblErgebnis SET Stornos = Stornos + 1 WHERE Agent IN (SELECT Agent FROM tblData WHERE RE_Num IN (SELECT RE_Num from tblStornos));

Wie die Könner unter euch wahrscheinlich schon gesehen haben (:D) erhöht sich dadurch aber nur der Wert jedes Verkäufers um 1, wenn die Bedingungen zutreffen.
Was mir jetzt fehlt ist der Wert, um den tblErgebnis.Stornos erhöht werden soll, also bei
Code:
SET Stornos = Stornos + 1

Könnte mir jemand dabei helfen?

MfG TheLuBu
 
ungetestet
SQL:
UPDATE
	tblErgebnis AS e
	INNER JOIN (
		SELECT
			d.Agent,
			COUNT(s.RE_Num) AS cnt_stornos
		FROM
			tblData AS d,
			tblStornos AS s
		WHERE
			d.RE_Num=s.RE_Num
		GROUP BY
			d.Agent
	) AS grp
		ON e.Agent = grp.Agent
SET
	e.Stornos = e.Stornos + grp.cnt_stornos
 
Zuletzt bearbeitet von einem Moderator:
Zurück