Update Anweisung mit sum in Whereklasuel

turbo991

Neuer Benutzer
Beiträge
2
Hallo liebe Experten, ich habe ein Problem mit einem SQL-Statement. In der Tabelle a stehen Rechnungen und in der Tabelle b zahlungseingänge. Jetzt soll durch eine Updatestatement in Tabelle a die Rechnung auf bezahlt gestellt werden wenn die Summe der Zahlungseingänge größer oder gleich der Rechnungssumme ist. Meine Abfrage funktioniert natürlich nicht, entweder erhalte ich die Summe aller Zahlungseingänge oder mit Group by verschiedene Summen. Wo muss die Unterabfrage hin oder geht das überhaupt in einem Schritt, vielen Dank im voraus.


updateTestRechnungensetbezahlt= 1

from

TestRechnungeninnerjoinTestBuchungsdaten

onTestRechnungen.RG=TestBuchungsdaten.RG

whereTestRechnungen.Betrag<(selectSUM(geld)fromTestBuchungsdatengroupbyTestBuchungsdaten.RG)
 
Werbung:
Code:
test=# select * from rechnung ;
 id | betrag | bezahl
----+--------+--------
  1 |  10 | f
  2 |  20 | f
  3 |  30 | f
(3 rows)

test=*# select * from geld_eingang ;
 rechnung | betrag
----------+--------
  1 |  5
  1 |  3
  2 |  13
  2 |  7
  3 |  7
(5 rows)

test=*# update rechnung set bezahl = true  from (select rechnung, sum(betrag) as summe from geld_eingang group by rechnung) e where rechnung.id=e.rechnung and e.summe >= rechnung.betrag;
UPDATE 1
test=*# select * from rechnung ;
 id | betrag | bezahl
----+--------+--------
  1 |  10 | f
  3 |  30 | f
  2 |  20 | t
(3 rows)
 
Werbung:
Zurück
Oben