Gelöst: SQL: Saldo über zwei Tabellen ?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Gelöst: SQL: Saldo über zwei Tabellen ?

Re: SQL: Saldo über zwei Tabellen ?

von WSO » Mi, 30.04.2014 19:59

Super, das hätte ich so nicht rausgefunden.
Funktioniert klasse.
Danke,
Wolfram

Re: SQL: Saldo über zwei Tabellen ?

von RobertG » Mi, 30.04.2014 19:45

Hallo Wolfram,

die vorgesehenen beiden Abfragen geben dieses Verknüpfungsmoment leider so nicht her. Es fehlt in der zweiten Abfrage irgendein Hinweis auf die Kunden_ID.
Prinzipiell gehen solche Verfahren mit Hilfe von korrelierenden Unterabfragen. Einmal angenommen, dass Du ein eine Kunden_ID in beiden Tabellen hast sieht das dann folgendermaßen aus:

Code: Alles auswählen

SELECT "rec_id", "Kunden_ID", (SELECT SUM( "rec_betrag" ) FROM "tRechnung" WHERE "rec_ID" = "a"."rec_ID" AND "Kunden_ID" = "a"."Kunden_ID") AS "SumRE", (SELECT SUM( "zah_betrag" ) FROM "tZahlung" WHERE "zah_kud_id" = "a"."Kunden_ID")  AS "SumZE" FROM "tRechnung" AS "a"
Ob in der zweiten Unterabfrage noch die "rec_ID" vorkommt kann ich mangels Kenntnis der Tabellen nicht sagen.
Siehe zu den korrelierten Unterabfragen das Handbuch 4.2 S. 197f sowie am Beispiel eines laufenden Kontostandes mit Kategorien auf S. 274f.

Gruß

Robert

Gelöst: SQL: Saldo über zwei Tabellen ?

von WSO » Mi, 30.04.2014 16:09

Ich habe zwei Tabellen (Faktura, Zahlung) die jeweils die Kunden-ID und einen Betrag enthalten.
Hierauf liegt jeweils eine view mit Group auf "Kunden-ID" und Summe über "Betrag".
Es kann dabei Zahlungen ohne Faktura und Faktura ohne Zahlungen geben.

Code: Alles auswählen

SELECT "zah_kud_id", SUM( "zah_betrag" ) AS "SumZE" FROM "tZahlung" GROUP BY "zah_kud_id"

Code: Alles auswählen

SELECT "rec_id", SUM( "rec_betrag" ) AS "SumRE" FROM "tRechnung" GROUP BY "rec_id"
Jetzt möchte ich per SQL den Gesamtsaldo pro Kunden-ID bilden.
Mir fehlt die zündende Idee das mit SQL zu formulieren.
Hat jemand ne Idee?

Danke im voraus,
Wolfram

Nach oben