webForumDet fria alternativet

Medeltal i MySQL

9 svar · 467 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

Hur beräknar man medeltal i sql-satsen, har en röstning där man kan rösta 1-5, vill inte att medeltalet överskrider 5 som är full pott oavsett antal röster.

Det är denna kod jag vill ändra på

<%set rs=objConn.Execute("select userID, username, roster, varde from tblUsers where userID="& UserID)
If CInt(rs("varde")) >= 1 and CInt(rs("roster")) >= 1 then

varVarde=CInt(rs("varde"))
varRoster=CInt(rs("roster"))
snitt = varVarde/varRoster %>
Bildröstningen</span><br>
<span class="brodtext">
Röstvärde till <%=rs("username")%><br>
Röster: <%=CInt(rs("roster"))%><br>
Värde: <%=CInt(rs("varde"))%><p>
Röstvärde just nu <%=Round(snitt,3)%>
<%'Else%>
<!--Bilden har ej fått några röster än-->
<%End If%>
</span>
cyprysMedlem sedan dec. 20003 563 inlägg
#2

Har jag missuppfattat frågan möjligtvis?

select userID, username, roster, varde, [b](varde/roster) as snitt[/b] ...

Dessutom finns det en funktion avg() som räknar ut medelvärdet för en kolumn. Men den verkar inte behöva användas i din design.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#3

Hur får jag rätt värde på sista raden här

Röstvärde till Admin
Röster: 22
Värde: 100

Röstvärde just nu 0.37

<%set rs=objConn.Execute("select userID, username, varde, roster, (varde/roster) as snitt from tblUsers where userID="& UserID)
@ndersMedlem sedan juni 200032 969 inlägg
#4

Det beror på vad du menar.
Vad är 0.37 för värde?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#5

@nders skrev:

Det beror på vad du menar.
Vad är 0.37 för värde?

med varde/roster får jag 0.37

Varde är det totala röstvärdet
Roster är antalet röster

@ndersMedlem sedan juni 200032 969 inlägg
#6

22 delat på 100 kan inte bli 0,37. Således: Något luktar fisk lång väg.
Exakt hur ser koden du använder ut nu? SQL-fråga + asp-kod i loop och utskrift. Gärna exempel på tabellinnehåll också.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#7

Hela koden (asp + sql-fråga)ser du i min fråga längst upp, har en kolumn som heter roster och en som heter varde, datatyp är INT

Utskriften av sql-frågan ger bara
select userID, username, varde, roster, (varde/roster) as snitt from tblUsers where userID=1

userID=1 är mitt id eftersom det är min sida jag testar på

cyprysMedlem sedan dec. 20003 563 inlägg
#8

Och röstvärdet kan inte på något sätt råka vara 37?

emissionMedlem sedan dec. 19996 721 inlägg
#9

Det är inget fel på den SQL-frågan. Antingen stämmer inte 22 och 100, eller så görs något med resultatet efteråt.

Den nuvarande koden lyder?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#10

Jag kom på att jag hade skrivit lite fel så det funkar perfekt nu, hade inte rs på den här delen
Röstvärde just nu <%=rs("snitt")%>

och det var erat tips om att ha (varde/roster) as snitt i sql-satsen som var den riktiga lösningen

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