Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Limit
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Witam drodzy forumowicze (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
devnul
post
Post #2





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


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? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
Athlan
post
Post #3





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


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

Na szybko wrzuciłem (IMG:http://forum.php.pl/style_emoticons/default/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ć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdro
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:43