F.eks. har bruger nr. 32 placeringen 3: (4+6) / 2 = 5 points. Avg(Points) kan jo ikke anvendes i en where-clause. Er det virkelig nødvendigt at spole hele recordsættet igennem?
Ja, sådan udtrækker jeg toplisterne. Men hvis jeg vil have en specifik placering, er jeg vel så nødt til at løbe alle poster med en højere score i gennem og tælle op, indtil jeg når til den aktuelle post (BrugerID). Eller har jeg misforstået dig?
Count = 0 While Not rs.EOF And Not Fundet If rs("BrugerID") <> AktueltID Then Count = Count + 1 Else Fundet = True End If rs.MoveNext Wend
Ja ok det er man nød til hvis man vil hvade en placering ud fra brugerID.
Måske man kan lave noget med CreateTable og lave en table som indeholder top listen og så ud fra den henter placeringen ud fra den. Det kan måske laves i en Query i access men jeg er ikke helt sikker.
I dette eks oprettes der en tabel som indeholder TOP X listen og så tilføjes et autonummer kolonne så kan placeringen hendtes ud fra brugerID, så slettes tabellen igen:
'Lav top X listen og lig den i en ny tabel aa_toplist SQL = "SELECT Avg(point) AS AvgPoint, brugerID INTO aa_toplist FROM TableNavn GROUP BY brugerID ORDER BY Avg(point) DESC" Conn.Execute(SQL)
'Tilføj en auto number kolonne til aa_toplist SQL = "ALTER TABLE aa_toplist ADD COLUMN placering COUNTER PRIMARY KEY" Conn.Execute(SQL)
'Hendt placeringen for brugerID = xxx.. her 2 som eks SQL = "SELECT placering FROM aa_toplist WHERE brugerID = 2" Set rs = Conn.Execute(SQL) Response.Write "BrugerID 2 har placering : " & rs("placering") rs.Close 'Denne linie skal være her ellers kan man ikke slette tabellen.
'Slet tabellen aa_toplist igen SQL = "DROP TABLE aa_toplist" Conn.Execute(SQL)
Og så kan aa_toplist joines med brugertabellen, når listen over brugere skal udskrives. Genialt...
Synes godt om
Ny brugerNybegynder
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.