Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Limit
Forum PHP.pl > Forum > Bazy danych
Athlan
Witam drodzy forumowicze smile.gif

Zacznę od przedstawienia zapytania:

  1. SELECT
  2. job_status_team AS team,
  3. (SUM( job_status_points ) / COUNT( job_id ) + team_rating_bonus) AS rating
  4. FROM jobs INNER JOIN teams ON (job_status_team = team_id)
  5. GROUP BY team
  6. ORDER BY rating DESC


Powyższe zapytanie pobiera mi wszystkie zadania przypisane do drużyn i liczy średnią drużyny poprzez obliczenie średniej punktów otrzymanej za każde zadanie + bonus minusowy bądź dodatni w polu team_rating_bonus. Dane są zwracane w następujący sposób: team -> rating.

Problem polega na tym, że średnia jest liczona ze wszystkich prac, jednakże chciałbym liczyć ją po ostatnich wykonanych pracach wg pola job_date DESC. Nie mam pojęcia jak to wyorderować, ani jak wylimitować, bo wszystko wpływa na wyświetlanie rezultatu drużyna => rating, a nie na same obliczenia.

Może jakieś podzaptanie?

Dziękuję za pomoc smile.gif


--- EDIT ---

Zrobiłem w PHP, limit jest robiony w linii 26, ale myślę, że da się to zrobić na poziomie MySQL'a
http://phpfi.com/252831
devnul
nie wiem czy to późna pora czy może to że niezbyt przejżyście opisałeś temat - ale kompletnie nie mam pojęcia na czym polega Twój problem.

BTW - czemu korzystasz z phpfi skoro jestes autorem analogicznego systemu (cpaste). Nie jest wystarczająco dobry? snitch.gif
Athlan
Cytat
BTW - czemu korzystasz z phpfi skoro jestes autorem analogicznego systemu (cpaste). Nie jest wystarczająco dobry? snitch.gif

Na szybko wrzuciłem snitch.gif

Problem polega na tym, że są 2 tabele:
teams - drużyny
jobs - prace

Za każdą pracę zespół dostaje średnią która jest zapisywana w job_points w tabeli jobs. Dodatkowo jest tabela teams, która zawiera dane z drużynami, które te prace wykonują. One mają być poukładane wg rankingu (czyli średniej średnich z 3 ostatnio wykonanych prac). Teraz ta średnia średnich prac jest liczona ze wszystkich prac w tabeli jobs, a chciałbym, żeby liczona była z 3 ostatnich biorąc pod uwagę sortowanie: ORDER BY job_time_start DESC LIMIT 0, 3.

I moje pytanie brzmi: Jak to zrobić smile.gif

Pozdro
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.