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 %>
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
Slettet bruger
21. januar 2007 - 12:39
#1
det kommer jo lidt an på hvilke to tal vi skal regne gennemsnit ud fa...? \Dan
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.
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?
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
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
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.
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
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
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?
24. januar 2007 - 09:13
#10
??
17. december 2009 - 19:45
#11
Bare skriv et "svar" - de få point... -
Kurser inden for grundlæggende programmering