Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie danych
Forum PHP.pl > Forum > Bazy danych > MySQL
damianooo
Potrzebuję jednym zapytaniem pobrać dane tak aby wyświetlić taką tabelę :

Imie /k1 /k2 /k3 /k4 /k5 / suma
---------------------------------
User3 / 4 / 2 / 4 / 2 / 4 / 16
User1 / 2 / 0 / 4 / 4 / 2 / 12
User2 / 2 / 0 / 2 / 4 / 2 / 10

Sprawa wydaje się prosta, ale ... dla każdej kolejki (k1,k2,k3..itd) muszę wcześniej zsumować punkty

Encje mam takie:

users {id}
matchdays {id}
matches {id,matchday_id}
points {id,user_id,match_id,numberOfpoints}

Próbowałem zrobić tak:

  1. SELECT SUM(p.numberOfpoints) AS suma,u.id AS user_id
  2. FROM points p
  3. JOIN users u ON ..
  4. JOIN match m ON ..
  5. JOIN matchday md ON ..
  6. WHERE md.id BETWEEN 1 AND 15
  7. GROUP BY u.username, md.id


... ale nie wiem jak posortować wyświetlane wyniki tak aby wyświetlane były wyniki użytkowników wg. sumy wszystkich punktów z każdej kolejki.

Jak to powinienem zrobić ?
Czy w użyciu klauzuli WHERE lub HAVING da się jakoś to posortować tak jak potrzebuję ?

P.S. Projekt wykonywany jest w Symfony 2
sazian
ORDER BY suma ?
damianooo
niestety, zapytanie:

  1. SELECT SUM(p.numberOfpoints) AS suma,u.id AS user_id
  2. FROM points p
  3. JOIN users u ON ..
  4. JOIN match m ON ..
  5. JOIN matchday md ON ..
  6. WHERE md.id BETWEEN 1 AND 15
  7. GROUP BY u.username, md.id
  8. ORDER BY suma


sortuje mi wg sumy z każdej kolejki.

takie otrzymuję wyniki:

suma punktów na kolejkę/ id_uzytkownika/id kolejki

  1. 26 13 9
  2. 20 12 9
  3. 20 5 9
  4. 20 16 8
  5. 18 16 9
  6. 18 4 12
  7. 18 6 10
  8. 18 13 8
  9. 18 6 12
  10. 16 16 1
  11. 16 12 11
  12. 16 5 11
  13. 16 14 12
  14. 16 5 1
  15. 16 1 10


a ja potrzebuję sortować wg sumy punktów z wszystkich kolejek sad.gif




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.