hvis det er en MSsQl så kan du bruge innerjoins.. det ved jeg ikke om du kan på MySql..
Hvilke databse kører du på ?
hvis det er MySql så gør du således
sql="Select * from brugere" set brugere=rs.execute(sql) do while not brugere.eof sql="select count(*) as antal from beskeder where frabrugerid="&brugere("brugerid") set beskeder=rs.execute(sql) response.write brugere("brugernavn")&" ("&beskeder("antal")&")" brugere.movenext loop
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;" set rs = conn.execute(SQL)
'udskrive: do while not rs.EOF Response.write "- " & rs("brugernavn") & " " & rs("antalBeskeder") & "<br>" rs.movenext loop
ved at bruge min sql får du hentet begge felter i samme hug. Det vil sige at du får et datasæt at arbejde med istedet for som i de andre eksempler at skulle løbe et datasæt igennem for at danne et andet.
Jeg vil støtte cwb i kommentar (31/07-2002 10:12:20). De er bedst at få databasen til at lave arbejdet en gang, så ungår man skal kade til databasen X antal bruger gange ligeledes kan man ikke sortere på den måde.
Derfor brug cwb's og mit forslag.
Synes godt om
Slettet bruger
31. juli 2002 - 10:39#15
cwb > Hvordan vil hele din SQL så se ud?
Synes godt om
Slettet bruger
31. juli 2002 - 10:41#16
ah - ok - læste forkert - kan prøve med dit, eagleeye.
ja prøv eagleeye's forslag. vores sql forslag er mere eller mere identiske men eagleeye har været flink og lave benarbejdet med at få udskrevet felterne.
Synes godt om
Slettet bruger
31. juli 2002 - 10:52#19
Virker fint - lige et tillægsspørgsmål, hvis jeg kan få sneget det ind :-)
HVIS man nu kun ønsker at vise eks. top 3 - altså de 3 brugere der har sendt flest, hvordan er så lige den select skal se ud?
SQL = "SELECT TOP 3 Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
Synes godt om
Slettet bruger
31. juli 2002 - 10:59#21
ah.. ja klart.
Tak for hjælpen!
Synes godt om
Slettet bruger
31. juli 2002 - 14:29#22
Hov - ville lige spørge - hvis jeg skal snige en
WHERE noget = true
ind i SQL'en:
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE noget = true GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
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.