phpbar.de logo

Mailinglisten-Archive

[dbs] Fußballtabelle

[dbs] Fußballtabelle

Stefan Novak stefan.novak at bnet.at
Don Dez 13 16:44:32 CET 2007


 
> 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