06. oktober 2003 - 12:19Der er
6 kommentarer og 1 løsning
Vis top 10
Hej
Jeg har et script (her SQL) der skal vise top 10 brugere - dvs. de 10 brugere der har skrevet flest beskeder.
Problemet er at vis eks. bruger nr. 9, 10, 11 og 12 alle har sendt 1 besked vises de på listen alligevel. Listen stopper med andre ord ikke ved de 10 brugere, fordi der er flere (eks. bruger nr. 9, 10, 11 og 12) der har sendt samme antal. Derfor vil jeg gerne tilføje en ekstra sortering - eks. på brugernavn.
SQL = "SELECT TOP 10 Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, brugere.brugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn, brugere.brugerid ORDER BY Count(beskeder.frabrugerid) DESC;"
... ORDER BY Count(beskeder.frabrugerid),beskeder.frabrugerid DESC
Synes godt om
Slettet bruger
06. oktober 2003 - 12:46#2
Det giver flg. fejl:
[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'beskeder.frabrugerid' as part of an aggregate function.
/test/top10.asp, line 12 == SQL
Med flg. SQL
SQL = "SELECT TOP 10 Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, brugere.brugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn, brugere.brugerid ORDER BY Count(beskeder.frabrugerid),brugere.brugernavn DESC"
kommer det til at stå på "hovedet" - altså viser den der har skrevet færrest beskeder øverst...
beskeder.frabrugerid erstattes måske med brugere.brugerid
Synes godt om
Slettet bruger
06. oktober 2003 - 13:08#4
nej - den oprindelige SQL gjorde det fint nok - bortset fra at den smed mere end 10 på. Problemet er vel at
ORDER BY Count(beskeder.frabrugerid) skal være DESC mens brugere.brugernavn skal være ASC i slutningen af SQL'en
SQL = "SELECT TOP 10 Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, brugere.brugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn, brugere.brugerid ORDER BY Count(beskeder.frabrugerid),brugere.brugernavn DESC"
ok ... jeg troede der var noget mere alvorligt galt ;)
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.