SQL-Abfrage, Sortierung nicht möglich

Hallo an alle
Ich hoffe jemand kann mir helfen. Ich habe eine Abfrage über mehrere Tabellen, die die Gesamtpunktzahl eines Spielers errechnen soll. Die Abfrage selber funktioniert, aber ich kann leider nicht nach dem Punktewert sortieren. Selbst PhpMyAdmin hat da versagt. Die Punkte wollen sich einfach nicht SOrtiert anzeigen lassen und er sortiert nach der ID. Hier die Daten und die Abfrage:

SQL-Abfrage:

SELECT (
 COALESCE( (
 SELECT SUM( ( haus.KG \* stadtviertel.Level) /10 )
 FROM stadtviertel, haus
 WHERE Besitzer = spieler.ID
 AND haus.ID = stadtviertel.Bild ) , 0
 ) + 
 COALESCE( (
 SELECT SUM( kosten /10 )
 FROM forschungen, saveforschung
 WHERE UserID = spieler.ID
 AND forschungen.ID = ForschungID ) , 0
 ) + 
 COALESCE( (
 SELECT SUM( (
 `Level` + Feuerkraft \* Koepfe + Gsw\_luft + Panzer\_Kopf + Panzer\_body + Schlag + Tritt + treffsicherheit) / `Alter` )
 FROM drachen
 WHERE Besitzer = spieler.ID ) , 0
 )
) AS punkte, spieler.ID
FROM spieler
WHERE spieler.status =1
GROUP BY spieler.ID
ORDER BY `punkte` ASC
LIMIT 0 , 30 

Die Ergebnissdaten:

punkte aufsteigend ID
13856.796386525 1
10898.327953916 2
17719.85805702 3
28644.209586625 4
28821.857511226 5
17386.397407489 6
20865.137 7
10741.698251446 8
19329.357073134 9
16441.88789141 10
13190.782596972 11
25948.707 12
334.73001456855 13
2145.9259908257 18
3299.6325735991 19

So, ziemlich deutlich zu sehen, dass er nach ID, statt nach Punkten sortiert obwohl „Order by punkte“ dort steht. ich hoffe jemand kann mir helfen und vielen Dank schon mal, dafür, dass ich euch Zeit rauben darf ^^

Mit freundlichen Grüßen
D. Mertins

Hi!

(wie üblich aus der Hüfte geschossen):

Wieso gruppierst Du im äußeren Select nach Punkte? Schon mal ohne dem group by versucht? Auf den ersten (schnellen) Blick bin ich der Meinung, daß die Gruppierung ziemlich „für die Würste“ ist … die Punkte zählst und summierst Du ja eh schon vorher …

Grüße,
Tomh

Genial, ohne Group By funzt es! Ewiger Dank ist dir gewiss :smile:

Mit freundlchen Grüßen
D. Mertins

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin, Daniel,

GROUP BY spieler.ID
ORDER BY punkte ASC

hinter dem group by steckt eine interne Sortierung - muss ja auch sein, sonst könnte da nichts gruppiert werden. Somit ist der order by auch witzlos, weil er genau den einen Wert zur Gruppe „sortiert“.

Wenn ich mal die Übersicht verliere, stricke ich mir eine View und sortiere die :smile:))

Gruß Ralf