SQL-abfrage Problem

bastimm

Grünschnabel
Hi Zuammen!
Ich habe ein großes Problem und hoffe ihr könnt mir dabei etwas weiterhelfen....
also ich bin gerade dabei ein Tabellen/Ergebnissystem für einen Fußballverein zu basteln.... nun habe ich eine Tabelle Spiele in der Ergebnisse/Punkte/heim-Auswärtsteam gespeichert sind. So weit so gut. EIne Auswärts oder Heimtabelle lässt sich ohne Probleme automatisch erstellen, nun wollte ich aber eine Gesamttabelle und bekomm einfach keine hin :s
um das Problem etwas zu verdeutlichen hier ein Beispiel:

Beispiel:
Tabelle spiele:
Heimteam_id | Auswärtsteam_id | Punkte-heim | Punkte-ausw
1 | 2 | 3 | 2
2 | 1 | 0 | 2
2 | 1 | 1 | 3

aus dieser Tabelle sollte ich per sql abfrage folgendes Ergebnis erhalten:
team | Punkte
1 | 8
2 | 3

ich hoffe das Problem gut genug geschildert zu haben...
wäre super, wenn mir jemand von euch nen tipp hätte....
danke schonmal
basti
 
das geht leider nur mit zwei SQL Abfragen nicht in einem Rutsch :)

select Heimteam_id,sum(punkt_heim) as punkte from spiele group by Heimteam_id
select Auswärtsteam_id,sum(punkt_ausw) as punkte from spiele group by Auswärtsteam_id
 
Hi Melmager!

Danke erstmal für deine Antwort.
die zwei sql abfragen habe ich auch hinbekommen ;-)
habe nur gedacht daß es evtl noch eine möglichkeit gibt die beiden abfragen irgendwie in einer zu verschachteln.

Über "union" kann ich beide abfragen zwar verbinden, nur werden beide abfragen aneinandergereiht und nicht kombiniert :(

Gibt es da evtl. noch eine Möglichkeit das in diesem einen SQL zu vereinen?
anonsten muß ich das Ganze wohl per array im PHP vereinen? nur da hab ich gar keinen plan :(

also wäre echt super, wenn mir jemand einen tipp geben kann, danke
basti
 
Ok eine SQL Abfrage aber ohne Gewähr :)

select a.Heimteam_id,(sum(a.Punkte-heim) + sum(b.Punkte-ausw)) as punkte
from spiele as a left join spiele as b on a.Heimteam_id = b.Auswärtsteam_id
group by a.Heimteam_id order by a.Heimteam_id

Wobei er hier minimum ein fehler macht bei der Berechnung:

wenn eine Mannschaft noch kein Heimspiel hatte wird er sie "vergessen"
 
danke erstmal....
aber deine lösung geht leider auch nicht :-(
bei 2 spieltagen is die tabelle ok, aber so bald es mehr werden sind die ergebnisse doppelt drin usw....
irgendwo is noch ein haken, ich glaub ich verzweifel noch.... nur mit einer array-verknüpfung der 2 abfragen komm ich auch noch nicht so klar....
naja nochmal ne rund rumprobieren.........
tzrotzdem danke, gruß basti

p.s. falls noch jemand was findet, oder nen tipp hat, wär ich dafür dankbar!
 
dann greife ich nochmal in die Trickkiste:

PHP:
$erg = mysql_query("create temporary table auswertung select  Heimteam_id,punkt_heim from spiele",$sqllink);
$erg = mysql_query("insert into auswertung select Auswärtsteam_id,punkt_ausw from spiele",$sqllink);
$erg = Mysql_query("select Heimteam_id,sum(punkt_heim) as punkte form auswertung group by Heimteam_id order by Heimteam_id",$sqllink);
while ($row = mysql_fetch_row($erg)) {
 echo "$row[0] $row[1]<br>";
}
$erg = mysql_query("drop table auswertung",$sqllink);
 
Hey Melmager!
DANKE
coole idee, nur die Frage, ob das nicht die DB etwas arg belastet, wenns mehr wird....
bin gerade noch dabei irgendwie das ganze mit 2 abfragen zu machen und das Ganze über arrays zusammenzufassen....

schon krass auf was für Probleme man stoßen kann, aber immerhin lern ich so das ganze SQL/Array zeug so langsam mal.....

hast du mir evtl noch nen tipp wie ich das evtl. mit arrays lösen kann?
also habe ein array:
x=3, y=20
x=5, y=10
x=3, y=30
x=5, y=2

ergebnis sollte dann sein
x=3, y=50
x=5, y=12

also schonmal vielen dank, hast mich echt extrem weitergebracht, hast was gut bei mir ;-)

basti
 
Zurück