Tabellen-Verknüfung

harokles

Neuer Benutzer
Beiträge
2
Hallo!

Ich habe zwei Tabellen, "Rechnungen" und "Rechnungsposten", wobei "Rechnungsposten" mit dem Feld RID als Fremdschlüssel auf das Feld ID einer Rechnung aus "Rechnungen" verweist.
Wie kann ich es mit SQL nun anstellen, dass ich alle Rechnungen und zusätzlich zu jeder Rechnung die Summe aller Rechnungsposten, die auf die jeweilige Rechnung verweisen, angezeigt bekomme?

Zur Verdeutlichung:

RECHNUNGEN
ID Datum
1 2013-05-01
2 2013-06-21
3 2013-09-01

RECHNUNGSPOSTEN
ID RID Betrag
1 1 25.88
2 1 15.00
3 2 33.33
4 3 156,28
5 3 200.00

Rauskommen soll:
ID Datum Gesamtbetrag
1 2013-05-01 40.88
2 2013-06-21 33.33
3 2013-09-01 356.28

Danke schon mal!
 
Werbung:
Wie kann ich es mit SQL nun anstellen, dass ich alle Rechnungen und zusätzlich zu jeder Rechnung die Summe aller Rechnungsposten, die auf die jeweilige Rechnung verweisen, angezeigt bekomme?


Danke schon mal!

Ich schenke Dir JOIN und SUM() als Aggregatsfunktion und als Bonus GROUP BY.

Code:
test=*# create table master (id int primary key);
CREATE TABLE
Time: 63,009 ms
test=*# create table slave (m_id int references master, val int);
CREATE TABLE
Time: 72,864 ms
test=*# copy master from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1
>> 2
>> \.
Time: 2473,931 ms
test=*# copy slave from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1  10
>> 1  20
>> 2  100
>> 2  50
>> 2  10
>> \.
Time: 17943,601 ms
test=*# select m.id, sum(s.val) from master m left join slave s on (m.id=s.m_id) group by m.id;
 id | sum
----+-----
  1 |  30
  2 | 160
(2 rows)

Andreas
 
Werbung:
Zurück
Oben