Re: Summe per SQL bei left join
Verfasst: Di, 29.04.2014 07:40
Hallo Gast,
eine Summierung in SQL geht nur, wenn die anderen Felder, die in der Abfrage vorhanden sind, einer Gruppierung unterliegen. Das ist bei Deiner 2. Abfrage nicht der Fall. Das müsste auch die (englischsprachige) Fehlermeldung besagen.
Etwas frei übersetzt: Der folgenden Ausdruck enthält keine der Sammelfunktionen oder eine Gruppierung. ...
Du musst also das "rec_datum" und den "rec_betrag" in die Gruppierung mit einbauen.
Alternativ kannst Du solche Summierungen auch mittels korrelierender Unterabfrage lösen:
Details zu korrelierenden Unterabfragen siehe das Base-Handbuch, in der Fassung 4.2 S. 197ff
Gruß
Robert
eine Summierung in SQL geht nur, wenn die anderen Felder, die in der Abfrage vorhanden sind, einer Gruppierung unterliegen. Das ist bei Deiner 2. Abfrage nicht der Fall. Das müsste auch die (englischsprachige) Fehlermeldung besagen.
Etwas frei übersetzt: Der folgenden Ausdruck enthält keine der Sammelfunktionen oder eine Gruppierung. ...
Du musst also das "rec_datum" und den "rec_betrag" in die Gruppierung mit einbauen.
Code: Alles auswählen
SELECT "tRechnung"."rec_id" AS "rec_id", SUM( "tZahlung"."zah_betrag" ), "tRechnung"."rec_datum", "tRechnung"."rec_betrag" FROM { OJ "tRechnung" LEFT OUTER JOIN "tZahlung" ON "tRechnung"."rec_id" = "tZahlung"."zah_rec_id" } GROUP BY "tRechnung"."rec_id", "tRechnung"."rec_datum", "tRechnung"."rec_betrag"
Code: Alles auswählen
SELECT "a"."rec_id" AS "rec_id", (SELECT SUM( "tZahlung"."zah_betrag" ) FROM "tZahlung" WHERE "a"."rec_id" = "zah_rec_id") AS "zah_betrag", "a"."rec_datum", "a"."rec_betrag" FROM "tRechnung" AS "a" GROUP BY "a"."rec_id"
Gruß
Robert