webForumDet fria alternativet

Hockeytabell

4 svar · 316 visningar · startad av andreas_lindh

andreas_lindhMedlem sedan jan. 20011 140 inlägg
#1

Jag har den här sql-frågan för att räkna ut en hockeytabell.

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 = 42 and s_matcher.uppdaterad = 1 
GROUP BY ID, Namn ORDER BY 8 DESC, 11 DESC, 9 DESC

Nu ska min förening anordna en cup och cupen använder sig av en regel som är att om två lag har samma poäng, samma målskillnad och samma antalet gjorda mål ska inbördes möte avgöra.

Kan jag på något sätt få fram inbördes möte i den här frågan?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Om du har Mysql 4.1 så skulle du kunna lägga in den som en sub-fråga. Annars så får du ställa flera frågor.

andreas_lindhMedlem sedan jan. 20011 140 inlägg
#3

Webbhotellet har version 4.0.15.

Hur ska jag göra för att lösa det med flera frågor?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Ja du, jag ser inget enkelt sätt. Det jag kan tänka mig är att hämta all information och lagra den i en array och sedan gå igenom denna array och se om du behöver kontrollera inbördes möte med en extra fråga. Beronde på inbördes möte så får du kanske byta plats på två lag.

andreas_lindhMedlem sedan jan. 20011 140 inlägg
#5

jag gjorde så här. Det är kanske inte den bästa lösningen men den fungerar och det är det viktigaste.

http://www.webforum.nu/showthread.php?s=&threadid=86567&forumid=191

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