Avatar billede steen_hansen Forsker
09. september 2007 - 01:39 Der er 4 kommentarer og
1 løsning

Beregn gennemsnit

Hvis MinTabel indeholder data, skal gennemsnittet beregnes. Hvordan? Har bakset en del med det nu, ønsker lidt hjælp:

If Not qRS.EOF Then
    SQL = "SELECT AVG(points) AS AveragePoints FROM MinTabel WHERE catID = " & qID & " And movieID = " & xID & ""
Set RS = Conn.Execute(SQL)
Else
    'Formular indsættes
End If
Avatar billede w13 Novice
09. september 2007 - 08:02 #1
Ser da fint ud. Kan du ikke hente rs("averagepoints") ?
Avatar billede steen_hansen Forsker
20. september 2007 - 23:12 #2
Undskyld den lange svartid, w13. Mit indledende spørgsmål er forkert formuleret. Helt specifikt, så ligger problemet i dette:

Jeg har nogle forskellige filer, hvor brugerne angiver en værdi til hver enkelt fil. Gennem en løkke trækker jeg links ud til hver fil. Det kan være at ID'erne ser således ud:

ID1 = 14
ID2 = 43

Fra denne tabel skal jeg med AVG(points) beregne gennemsnittet, og trække det med ud i løkken. Hvis nu brugerne giver flg. point, hvor ID1 = 14, og ID2 = 43:

ID1 = 14    ID2 = 43    Bruger = 1    point = 5
ID1 = 14    ID2 = 43    Bruger = 2    point = 7
ID1 = 14    ID2 = 43    Bruger = 3    point = 2
ID1 = 14    ID2 = 43    Bruger = 4    point = 8

- så får jeg et gennemsnit på 5,5 på denne fil.

Min første indskydelse var at lave en relationsdatabase, men som jeg lige ser det, vil det ikke være en fordel. Hvordan skal SQL-forespørgslen se ud, hvis jeg skal have gennemsnittet for den fil, hvor ID1 = 14, og ID2 = 43? Der er mange andre ID1'er og ID2'er i tabellen med andre værdier. Det ovenstående er kun eksempel på ?ID1=14&ID2=43
Avatar billede steen_hansen Forsker
20. september 2007 - 23:43 #3
Håber dette giver et mere klart billede af hvad jeg mener:

<%
Dim RS, SQL, averageRS
Set RS = Conn.Execute("SELECT * FROM MinTabel WHERE ID1 = 14 ORDER BY vTitle ASC")
SQL = "SELECT AVG(points) AS AveragePoints FROM MinTabel WHERE .......?"
Set averageRS = Conn.Execute(SQL)


If Not RS.EOF Then

    Do Until RS.EOF
%>
        <a href="/../../....asp?ID1=<%=RS("ID1"%>&ID2=<%=RS("ID2")%>" title="<%=RS("description")%>"><%=RS("vTitle")%></a>
        <%=averageRS("AveragePoints")%>
<%
    RS.MoveNext
    Loop
Else
%>

    <form>
        .......
    </form>

<% End If %>
Avatar billede steen_hansen Forsker
22. september 2007 - 20:53 #4
Der var lige et par smuttere:

<%
Dim RS, SQL, averageRS
Set RS = Conn.Execute("SELECT * FROM MinTabel WHERE ID2 = 43 ORDER BY vTitle ASC")
SQL = "SELECT AVG(points) AS AveragePoints FROM MinTabel WHERE .......?"
Set averageRS = Conn.Execute(SQL)

If Not RS.EOF Then

    Do Until RS.EOF
%>
    <a href="/../../dokument.asp?ID1=<%=RS("ID1")%>&ID2=<%=RS("ID2")%>" title="<%=RS("description")%>"><%=RS("vTitle")%></a>
    <%=averageRS("AveragePoints")%>
<%
    RS.MoveNext
    Loop
Else
%>

    <form>
        .......
    </form>

<% End If %>
Avatar billede steen_hansen Forsker
26. september 2007 - 15:17 #5
Lukker
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