Mailinglisten-Archive |
> Ich zerbrech mir jetzt seit Stunden den Kopf.. vielleicht > könnt ihr mir helfen: > > Tabelle mit Fussballergebnissen: > > Id > Mannschaft > Punkte > Tore_erziehlt > Tore_erhalten > Tore_diff > > Sieht zB so aus dann: > > 1 MannA 6 2 1 1 > 2 MannB 2 1 3 -2 > 3 MannC 7 3 2 1 > 4 MannD 7 3 2 1 > 5 MannE 3 2 3 -1 > > Anforderung: > Tabelle ausgeben. > > SELECT * FROM ergebn WHERE turnierid ORDER BY Punkte DESC, > Tore_diff DESC > > Problem: > Wenn Punkte und Tore_diff gleich ist (siehe MannC und MannD > im Beispiel) soll das direkte Duell entscheiden. Wie löse ich > so etwas? > Mir fällt nur die Variante ein, dass ich mir mit dem Select > oben alle Daten in ein Array hole, dann durchlaufe, die Werte > vergleiche, und bei Gleichheit ein Extra Select in die > Spiele-Tab mache und ggf. die 2 Mannschaften im Array vertausche. > Sehr ihr eine Möglichkeit, wie man das gleich mit einem > Select schaffen könnte? In dem man zB noch eine zusätzliche > Spalte einbaut wo man alle besiegten IDs oder so einträgt > oder mit Wenn oder dergleichen, ...? Naja die Lösung hast du ja eh schon im Text beschrieben, du musst es nur mehr in SQL umsetzten. ---snip--- > Wenn Punkte und Tore_diff gleich ist (siehe MannC und MannD > im Beispiel) soll das direkte Duell entscheiden. ---snip--- SELECT * FROM ergebn AS e1, ergebn AS e2 WHERE ( e1.tore_diff = e2.tore_diff AND e1.punkte = e2.punkte AND e1.id < e2.id ) Mfg Stefan
php::bar PHP Wiki - Listenarchive