phpbar.de logo

Mailinglisten-Archive

[dbs] SQL sum() aus 2 Tabellen addieren

[dbs] SQL sum() aus 2 Tabellen addieren

Robert Pleniger pleniger at rpdev.at
Die Dez 6 12:25:23 CET 2005


Hallo Stephan

>> > Hallo,
>> >
>> > ich komme bei einer Abfrage nicht weiter:
>> >
>> > Wichtig für diese Abfrage sind 3 Tabellen
>> >
>> > User (user_id,name)
>> > Points_03_04 (id,user_id,spieltag,spiel,punkte)
>> > Points (id,user_id,spieltag,spiel,punkte)
>> >
>> > In den beiden Punkte-Tabellen stehen zu einem tag mehrere einträge.
>> >
>> > Ich möchte nun eine Gesamtpunktzahlauflistung (sortiert)
>> >
>> > Mit den beiden Abfragen bekomme ich die einzelnen Punkte au den beiden
>> > Tabellen:
>> >
>> > select user_id, sum(punkte)
>> > from points
>> > group by user_id
>> >
>> > select user_id, sum(punkte)
>> > from points_03_04
>> > group by user_id
>> >
>> > Aber wie bekomme ich diese beiden zusammen?

In diesem Fall die nicht die Lösung aber vielleicht brauchst Du es ein andermal.
z.B.
select user_id, punkte
 from points
UNION
select user_id, punkte
 from points_03_04;

>> >
>> > Bis jetzt bin ich bei
>> > SELECT u.user_id, u.name, (sum( p.punkte ) + sum( a.punkte ))
>> > FROM user u, points_03_04 p, points a
>> > WHERE u.user_id = p.user_id
>> > AND u.user_id = a.user_id
>> > GROUP BY u.user_id
>> >
>> > aber da bekomme ich utopische werte!
>> >
>> > Wie kann ich so etwas machen??

Du brauchst eine temporäre Tabelle

CREATE TEMPORARY TABLE tmp_points
select user_id, punkte
 from points
;
INSERT INTO TABLE tmp_points
select user_id, punkte
 from points_03_04
;
select user_id, sum(punkte)
 from tmp_points
group by user_id
;

MfG Robert

php::bar PHP Wiki   -   Listenarchive