avg(), sum()

Databaser & SQL

4 svar · 235 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
252 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)