webForumDet fria alternativet

Sortering.

3 svar · 255 visningar · startad av Ralle

RalleMedlem sedan feb. 2003209 inlägg
#1
strSQL3="SELECT Lag, iif(HM is null,0,HM)+iif(BM is null,0,BM) AS Matcher, iif(HP1 is null,0,HP1)+iif(BP1 is null,0,BP1) AS TP1, 
TP1/Matcher AS TotalMedel FROM (SELECT Lag_i_Elitserien.Lag, (Select Count(Id) from Elitserien where (Sasong='" & Sasong2 & "' AND Omgang<=" & omgang1 & " AND HemmaLag=Lag_i_Elitserien.Id)) AS HM,
(Select Count(Id) from Elitserien where (Sasong='" & Sasong2 & "' AND Omgang<=" & omgang1 & " AND BortaLag=Lag_i_Elitserien.Id)) AS BM,
 (Select Sum(Publik) from Elitserien where (Sasong='" & Sasong2 & "' And Omgang<=" & omgang1 & " AND HemmaLag=Lag_i_Elitserien.Id)) AS HP1,
 (Select Sum(Publik) from Elitserien where (Sasong='" & Sasong2 & "' And Omgang<=" & omgang1 & " AND BortaLag=Lag_i_Elitserien.Id)) AS BP1
 FROM Lag_i_Elitserien, Elitserien WHERE Sasong='" & Sasong2 & "' AND (Lag_i_Elitserien.ID=Elitserien.HemmaLag Or Lag_i_Elitserien.ID=Elitserien.BortaLag) 
GROUP BY Lag_i_Elitserien.id, Lag_i_Elitserien.Lag) ORDER BY (HP1+BP1)/(HM+BM) DESC"

Jag vill alltså sortera på snitt, men det blir sortering på lag istället. Vad gör jag för fel?

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Det blir sortering på det du har i order by. Att den sorterar på lag tror jag inte på.

Testa

ORDER BY (HP1+BP1+0.0)/(HM+BM+0.0) DESC"

så att du inte får heltalsdivision.

RalleMedlem sedan feb. 2003209 inlägg
#3

Jo, den sorterade faktiskt på lag baklänges, varför vet jag inte.

Men jag kom på att jag kan göra så här istället:

(iif(HP1 is null,0,HP1)+iif(BP1 is null,0,BP1))/(iif(HM is null,0,HM)+iif(BM is null,0,BM))

Då fungerar det. Det är väl samma ide som du tog upp.

RalleMedlem sedan feb. 2003209 inlägg
#4

Din variant fungerar inte.

Genererad på 363 ms · cache AV · v20260730165559-full.f96bc7eb