Avatar billede bremer Nybegynder
21. januar 2007 - 11:13 Der er 10 kommentarer og
1 løsning

Gemmensnit af optælling

Hej Alle sammne,

hvad skal jeg gøre hvis jeg ønsker, at finde gemmensnite af denne optælling:

<%
        Set Conn = Server.CreateObject("ADODB.Connection")
        DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
        DSN = DSN & "DBQ=" & Server.MapPath("../../db/filmblog.mdb")
        Conn.Open DSN
        strSQL = "Select count (*) as tal From indlaeg Where filmid = '" & Request.QueryString("id") & "'"
        Set rs = Conn.Execute(strSQL)

        Response.Write rs("tal")

'Conn.Close
'Set Conn = Nothing
    %>
Avatar billede Slettet bruger
21. januar 2007 - 12:39 #1
det kommer jo lidt an på hvilke to tal vi skal regne gennemsnit ud fa...?

\Dan
Avatar billede ffsoft Praktikant
21. januar 2007 - 13:32 #2
Du finder det samlede antal poster i tabellen som har
samme filmid. Du kan ikke beregne gennemsnit ud fra kun
1 tal.
Avatar billede bremer Nybegynder
21. januar 2007 - 13:53 #3
jo, men "tal" laver vel bare en optælling af alle med den aktuelle "filmid" - hertil ville jeg gerne kunne lave eksempelvis:

          "Tal" (filmid)
---------------------------------  = gennemsnit
"antal poster fra databasen" (ID)

Er dette er muligt?
Avatar billede ffsoft Praktikant
21. januar 2007 - 14:39 #4
strSQL = "Select count (*) as tal From indlaeg Where filmid = '" & Request.QueryString("id") & "'"
Set rs = Conn.Execute(strSQL)       
  Response.Write rs("tal")
  intAntal = rs("tal")
rs.close

strSQL = "Select FilmID From indlaeg Where filmid = '" & Request.QueryString("id") & "'"
Set rs = Conn.Execute(strSQL)
do until rs.eof
  intFilmID = intFilmID + rs("FilmID")
  rs.movenext
loop

Response.write "Gennemsnit: " & intFilmID/intAntal
Avatar billede bremer Nybegynder
21. januar 2007 - 15:26 #5
Det ser næste ok ud!

Gennemsnit: 10,3333333333333

- men skal jeg gøre, hvis jeg KUN ønsker 2 decimaler

Gennemsnit: 10,33

Evt. vil jeg meget meget kunne (hvis det var mulighed for det), at lave det med 1 decimale, hvor det tilpasser gennemsnit til:

Gennemsnit: 10,5
Avatar billede ffsoft Praktikant
21. januar 2007 - 16:25 #6
Prøv Response.write "Gennemsnit: " & format(intFilmID/intAntal, "Standard")

Den vil give 10,34.

Hvis du vil have resultatet 10,5 er nu nødt til at komme
med nogle retninglinier:

10,00 = 10,0
10,01 = 10,5
10,25 = 10,5
10,45 = 10,5
10,50 = 10,5
10,55 = 11,0
10,75 = 11,0
11,00 = 11,0

f. eks.
Avatar billede bremer Nybegynder
21. januar 2007 - 16:51 #7
jeg har prøvet,

Response.write "Gennemsnit: " & format(intFilmID/intAntal, "Standard")

men der fremkommer en fejl, den siger:

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'format'

/blog.asp, line 564 

Nogle retninglinier ville være:

10,00 = 10,0
10,01 = 10,0
10,25 = 10,0
10,45 = 10,0
10,50 = 10,5
10,55 = 11,5
10,75 = 11,5
11,00 = 11,5
Avatar billede ffsoft Praktikant
21. januar 2007 - 21:29 #8
Format virker åbenbart kun i vba og ikke vbs
i stedet kan du gøre sådan.

lngGennemsnit =  intFilmID/intAntal
intPunktumPos = instr(1, lngGennemsnit ,".")
response.write left(lngGennemsnit,intPunktumPos-1) & "," & mid(lngGennemsnit,intPunktumPos + 1,2)

De regler du opstiller for oprunding giver ikke mening

Hvis 10,00 = 10,0 hvorfor er 11,00 så lig med 11,5
Skal 12.00 så være lig med 13,0
Avatar billede bremer Nybegynder
22. januar 2007 - 21:51 #9
Hej,

Kunne man gøre noget lala dette her:

FYI "FilmID" er lige lavet om til "film_score"

<%
strSQL = "select round(avg(film_score), 1) as average from indlaeg where filmid='" & request.querystring("id") & "'"
Set rs = Conn.Execute(strSQL)

Response.write rs("average")

%>

men der fremkommen en fejl - den siger:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.



Beklager, mine retninglinier - sådan her kunne være godt:

10,00 = 10,0
10,01 = 10,0
10,25 = 10,0
10,45 = 10,0
10,50 = 10,5
10,55 = 10,5
10,75 = 11,0
11,00 = 11,0
11,01 = 11,0
11,25 = 11,0

Giver dette ikke lidt mening nu?
Avatar billede bremer Nybegynder
24. januar 2007 - 09:13 #10
??
Avatar billede bremer Nybegynder
17. december 2009 - 19:45 #11
Bare skriv et "svar" - de få point... -
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester