webForumDet fria alternativet
Logga in / Bli medlem

avg(), sum()

Databaser & SQL

4 svar · 216 visningar · startad av mcfoist

Medlem sedan feb. 200244 inlägg
Trådstart#1

Varför, varför, varför.....?

Varför funkar detta:

SELECT sum(stjarnor) as star FROM spelarrapport, match " &_
"WHERE match.matchid = spelarrapport.matchid AND spelarID ="& spelarID &" AND sasongsID="& sasong

Resultatet blir: 4,5

Men inte detta:

SELECT avg(stjarnor) as star FROM spelarrapport, match " &_
"WHERE match.matchid = spelarrapport.matchid AND spelarID ="& spelarID &" AND sasongsID="& sasong

Resultatet blir: 0

Mycket märkligt tycker jag men jag har väl missat nå't...
Använder en accessdatabas. Idéer motages tacksamt! :)

Medlem sedan dec. 200012 464 inlägg
#2

Vilken datatyp är stjarnor?

Medlem sedan feb. 200244 inlägg
#3

Stjarnor är decimaltal... har dubbel, ja.. trippelkollat

Medlem sedan feb. 200244 inlägg
#4

fungerar faktiskt nu... men jag vet inte om det är något som jag gör eller om det är servern som sidan ligger på för ibland funkar det inte... :)

Hur som helst så får jag ett tal nu men talet är inte avrundat. Det villl säga att om det ska vara 3,5 så får jag värdet 3,0.

Jag använder mig av
stjarnor = FormatNumber(stjarnor, 2, -1, 0, 0) för att tvinga fram två decimaler man det kan väl inte betyda något? :)

Medlem sedan feb. 200244 inlägg
#5

Hittade lösningen på det sistnämnda problemet med avrundningen alldeles själv :)

sql = "SELECT Round(avg(stjarnor),2) as star FROM spelarrapport, match " &_
"WHERE match.matchid = spelarrapport.matchid AND spelarID ="& spelarID &" AND sasongsID="& sasong
267 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)