webForumDet fria alternativet

Få fram placering

2 svar · 186 visningar · startad av andreas_lindh

andreas_lindhMedlem sedan jan. 20011 140 inlägg
#1

jag har den här frågan för att ta fram en tabell för hcokeyserier.
Går det på något sätt att få fram vilken placering laget haft som bäst,sämst och en genomsnitts placering?

SELECT s_deltagande_lag.ID, s_deltagande_lag.Namn,s_deltagande_lag.serie_id,
@games := Count(s_matcher.ID) AS games,
@win := Sum((s_deltagande_lag.ID=lagid_a And resultat_a > resultat_b ) 
Or (s_deltagande_lag.ID=lagid_b And resultat_a<resultat_b)) AS win,
@tie := Sum(resultat_a=resultat_b) AS tie,
@lost := ((Count(s_matcher.ID))-(Sum((s_deltagande_lag.ID=lagid_a And resultat_a > resultat_b )
Or (s_deltagande_lag.ID=lagid_b And resultat_a<resultat_b)))-(Sum(resultat_a=resultat_b))) as lost,
@poang:= ((Sum((s_deltagande_lag.ID=lagid_a And resultat_a > resultat_b )
Or (s_deltagande_lag.ID=lagid_b And resultat_a<resultat_b))*2)
 + (Sum(resultat_a=resultat_b))) AS poang,
@plus := Sum((s_deltagande_lag.ID=lagid_a)*resultat_a +
 (s_deltagande_lag.ID=lagid_b)*resultat_b) as plus,
@minus := Sum((s_deltagande_lag.ID=lagid_a)*resultat_b + 
(s_deltagande_lag.ID=lagid_b)*resultat_a) as minus,
@plusminus := Sum((s_deltagande_lag.ID=lagid_a)*resultat_a +
 (s_deltagande_lag.ID=lagid_b)*resultat_b) -
 Sum((s_deltagande_lag.ID=lagid_a)*resultat_b + (s_deltagande_lag.ID=lagid_b)*resultat_a) as plusminus
FROM s_deltagande_lag LEFT JOIN s_matcher ON (s_deltagande_lag.ID=s_matcher.lagid_a) 
Or (s_deltagande_lag.ID=s_matcher.lagid_b)
where s_deltagande_lag.serie_ID = 2
GROUP BY ID, Namn
ORDER BY 8 DESC, 11 DESC, 9 DESC, 10 ASC
m_soderlundMedlem sedan sep. 20026 425 inlägg
#2

Jädrar vilken SQL-sats! Undrar om LarsG orkar sig på den.. Jag går i alla fall bet. :(

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Nej, det går inte i Mysql. Du behöver stöd för vyer eller att kunna ange en select-sats i from listan. Det är förmodligen enklast att räkna ut det i applikationen.

Hämta allt data ordnat efter omgång, beräkna plats för varje lag och använd en array för att lagra högsta/lägsta/medel.

130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)