Seite 1 von 1

Re: Unterabfrage tut nicht was sie soll

Verfasst: Di 5. Mär 2019, 16:14
von RobertG
Hallo Theophilus,
Theophilus hat geschrieben:
Di 5. Mär 2019, 09:43

Code: Alles auswählen

SELECT distinct Ubw_Termin, (Select Sum(Betrag) FROM Spock.tbl_Kollekten2 as Saldo) 
FROM Spock.tbl_Kollekten2 order by Ubw_Termin desc;
liefert mir zwar eine Liste der verschiedenen Überweisungstermine - die Unterabfrage berechnet die Summe aber über alle. Dh für jeden Überweisungstermin wird mir die Gesamtsumme aller Überweisungstermine angezeigt.
Wo liegt mein Denkfehler?
Du fragst mit der Unterabfrage nichts ab, was sich auf die äußere Abfrage bezieht. Vermutlich möchtest Du etwas Ähnliches erhalten wie

Code: Alles auswählen

SELECT distinct a.Ubw_Termin, (Select Sum(Betrag) FROM Spock.tbl_Kollekten2 WHERE Ubw_Termin <= a.Ubw_Termin) as Saldo 
FROM Spock.tbl_Kollekten2 AS a order by a.Ubw_Termin desc;
... wobei ich jetzt einfach hoffe, dass das Ganze so ohne Maskierung mit doppelten Anführungszeichen funktioniert, da Du nach dem Code nicht mit einer der internen Datenbanken arbeitest.

Gruß

Robert

Re: Unterabfrage tut nicht was sie soll

Verfasst: Do 7. Mär 2019, 17:22
von RobertG
Hallo Theophilus,

die Tabelle in der äußeren Abfrage wird mit einem Alias, dem "a" versehen. Für die innere Abfrage wird über "a"."Feldname" der Inhalt des aktuellen Datensatzes aus der äußeren Abfrage ausgelesen. Damit habe ich in der inneren Abfrage eine Beziehung zu der äußeren Abfrage.

Siehe auch im Handbuch "korrelierende Unterabfrage".

Gruß

Robert