Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Sortowanie po sumie (bądź różnicy)
Forum PHP.pl > Forum > Przedszkole
fastlone
Witajcie.

Mam zapytanie SQL w takiej formie
  1. SELECT a.uid, a.username, a.teamid, a.fbname, b.name, count(c.kills) AS matches, SUM(c.kills) AS killscount, SUM(c.deaths) AS deathscount, SUM(c.ismvp) AS mvptimes
  2. FROM ".TABLE_PREFIX."users a
  3. LEFT JOIN ".TABLE_PREFIX."cod_teams b ON (a.teamid = b.id)
  4. LEFT JOIN ".TABLE_PREFIX."cod_stats c ON (a.uid = c.playerid)
  5. GROUP BY a.uid
  6. ORDER BY (killscount-deathscount) DESC


W tabeli stats znajduje się WIELE rekordów odnoszących się do każdego użytkownika, dlatego je sumuję. Sortowanie chcę wykonać na podstawie różnicy między sumą rekordów z komórki kills i sumą rekordów z komórki deaths.

Otrzymuję błąd:
Kod
1247 - Reference 'killscount' not supported (reference to group function)

Tak, rozumiem co on znaczy, lecz nie mam pojęcia, w jakiej innej formie wykonać to sortowanie, by brać pod uwagę różnicę tych dwóch sum.



@edit
Błąd usunięty, wystarczyło odnieść się do parametru SUM(c.kills) zamiast jego aliasu (analogicznie dla deaths).
trueblue
  1. ORDER BY SUM(c.kills)-SUM(c.deaths) DESC
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.