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
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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