im Query die grösste Differenz suchen

PaRkY

Gesperrt
Für eine Fussball-Page möchte ich eine Statistikseite aufbauen. Dort sollen die 5 Spiele mit der grössten Tordifferenz (tore_home - tore_guest) der Reihe nach geordnet werden, wobei es egal ist ob die Tordifferenz -5 oder 5 ist.

wie bewerkstellige ich das am besten?

danke für die Hilfe.
 
Folgendes Query könnte Deine Abfrage sein:
Code:
SELECT
 feld1,
 feld2,
 # weitere Felder
 (tore_home - tore_guest) AS Tordifferenz
FROM Tabelle
# ggf. Einschränkung auf Saison o.a. mit WHERE
ORDER BY ABS(Tordifferenz) DESC
LIMIT 5
Auf Deine Tabellenstruktur anpassen mußt Du es selber.

Gruß hpvw
 
hmm.. irgendwie klappt das nicht. Folgende Fehlermeldung kommt:


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/schiedsrichter-team.ch/httpdocs/stats.php on line 18
Die fünf torreichsten Spiele der Saison

Line 18: while ($row=mysql_fetch_array($sql))
 
--> Unknown column 'Tordifferenz' in 'order clause'


$sql="SELECT * (goals_home - goals_guest) AS Tordifferenz FROM spielplan ORDER BY ABS(Tordifferenz) DESC LIMIT 5";


wo liegt das Problem?
 
Code:
SELECT
 feld1, # Du musst die
 feld2, # Felder einzeln angeben
 (tore_home - tore_guest) AS Tordifferenz
FROM Tabelle
# ggf. Einschränkung auf Saison o.a. mit WHERE
ORDER BY ABS(Tordifferenz) DESC
LIMIT 5
 
das geht immer noch nicht:
PHP:
$sql="SELECT
 goals_home, 
 goals_guest, 
 (goals_home - goals_guest) AS Tordifferenz
FROM spielplan
ORDER BY ABS(Tordifferenz) DESC
LIMIT 5";


gibt wieder: "Unknown column 'Tordifferenz' in 'order clause'"
 
Hmm.. ich war der Meinung Alias-Felder können nur im Where nicht verwendet werden.
Offensichtlich geht es auch im Order By nicht, wenn sie dort in einer Funktion benutzt werden.
Zwei getestete Möglichkeiten, die funktionieren:
Code:
SELECT
  goals_home,
  goals_guest,
  (goals_home - goals_guest) AS Tordifferenz,
  ABS(goals_home - goals_guest) AS AbsTordifferenz
FROM spielplan
ORDER BY AbsTordifferenz DESC
LIMIT 5
Code:
SELECT
  goals_home,
  goals_guest,
  (goals_home - goals_guest) AS Tordifferenz
FROM spielplan
ORDER BY ABS(goals_home - goals_guest) DESC
LIMIT 5
Gruß hpvw
 
Zurück