SQL - Summe sortieren?
hattrix
- datenbank
0 King^Lully0 hattrix
0 Ilja
SELECT verein_name,SUM(win),SUM(remis),SUM(lost),SUM(tore1),SUM(tore2),(tore1-tore2) as diff,SUM(punkte) FROM hattrix_tabelle1 INNER JOIN hattrix_vereine ON team_id=hattrix_vereine.id_v WHERE hattrix_tabelle1.spieltag <= 2 GROUP BY verein_name ORDER BY punkte DESC, diff DESC, tore1 DESC, verein_name ASC
Ergibt:
1\. Eintracht Frankfurt 2 0 0 8 : 2 +4 6
2\. Alemannia Aachen 1 0 1 4 : 4 2 3
3\. SV Werder Bremen 2 0 0 4 : 0 +2 6
4\. VfB Stuttgart 1 1 0 2 : 0 +2 4
5\. VfL Wolfsburg 2 0 0 6 : 2 +1 6
6\. Bayer 04 Leverkusen 1 0 1 1 : 2 1 3
7\. Borussia Dortmund 1 1 0 1 : 0 +1 4
8\. FC Energie Cottbus 1 1 0 1 : 0 +1 4
9\. 1.FC Nürnberg 0 2 0 0 : 0 0 2
10\. FSV Mainz 05 0 1 1 0 : 3 0 1
11\. Hannover 96 1 0 1 4 : 3 +-1 3
12\. Arminia Bielefeld 0 1 1 0 : 1 -1 1
13\. Borussia M'gladbach 0 1 1 0 : 1 -1 1
14\. VfL Bochum 0 0 2 0 : 3 -1 0
15\. FC Schalke 04 0 1 1 0 : 2 -2 1
16\. Hamburger SV 0 1 1 0 : 2 -2 1
17\. Hertha BSC Berlin 0 1 1 0 : 2 -2 1
18\. FC Bayern München 0 1 1 0 : 4 -4 1
Warum sortiert er nicht richtig nach Punkten?
Und warum ist die Diff. falsch berechnet?
Der 1.Spieltag stimmt, aber der 2.Spieltag überhaupt nicht!
SELECT verein_name,SUM(win),SUM(remis),SUM(lost),SUM(tore1),SUM(tore2),(tore1-tore2) as diff,SUM(punkte) FROM hattrix_tabelle1 INNER JOIN hattrix_vereine ON team_id=hattrix_vereine.id_v WHERE hattrix_tabelle1.spieltag <= 2 GROUP BY verein_name ORDER BY punkte DESC, diff DESC, tore1 DESC, verein_name ASC
Probier mal, "ORDER BY Sum(punkte) DESC".
SELECT verein_name,SUM(win),SUM(remis),SUM(lost),SUM(tore1),SUM(tore2),(tore1-tore2) as diff,SUM(punkte) FROM hattrix_tabelle1 INNER JOIN hattrix_vereine ON team_id=hattrix_vereine.id_v WHERE hattrix_tabelle1.spieltag <= 2 GROUP BY verein_name ORDER BY punkte DESC, diff DESC, tore1 DESC, verein_name ASC
>
> Probier mal, "ORDER BY Sum(punkte) DESC".
Da birngt er mir ne Fehlermeldung.
Nicht nur das Sortieren ist falsch, sondern irgendwie alles, was nach dem 2.Spieltag kommt!
Dann probier mal im SELECT oben "SUM(punkte) AS Summe" und "ORDER BY Summe DESC".
Und immer schön das SQL und die Fehlermeldung mitliefern.
yo,
du hast vergessen, über die differenz auch die summen zu bilden. nur mysql gibt dabei keine fehlermeldung aus.
SELECT verein_name,
SUM(win),
SUM(remis),
SUM(lost),
SUM(tore1),
SUM(tore2),
SUM(tore1 - tore2) as diff,
SUM(punkte)
FROM hattrix_tabelle1
INNER JOIN hattrix_vereine ON team_id=hattrix_vereine.id_v
WHERE hattrix_tabelle1.spieltag <= 2
GROUP BY verein_name
ORDER BY 8 DESC, 7 DESC, 5 DESC, 1 ASC
Ilja