/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hvordan laves en liste over de 10 flittigs~
Fra : Jakob Munck


Dato : 08-09-01 07:03

Jeg har en lille asp-baseret kontaktforening, og her er der en tabel der
viser hvilke af medlemmerne der har logget sig ind og hvornår. Nu kunne jeg
så godt tænke mig at lave en "hitliste", hvor jeg opregner de 5 mest
flittige brugere af siten, f.eks. inden for de sidste 30 dage. Men hvordan
gør jeg det?

Jeg kender koden (count) til at tælle antallet af records i et recordsæt,
men hvordan laves en hitliste, hvor kun de records der optræder hyppigst
(inden for en given periode) er oplistet?


v.h.
Jakob Munck



 
 
Anders Holbøll (08-09-2001)
Kommentar
Fra : Anders Holbøll


Dato : 08-09-01 14:18

Jakob Munck wrote:
>
> Jeg har en lille asp-baseret kontaktforening, og her er der en tabel
> der viser hvilke af medlemmerne der har logget sig ind og hvornår.
> Nu kunne jeg så godt tænke mig at lave en "hitliste", hvor jeg
> opregner de 5 mest flittige brugere af siten, f.eks. inden for de
> sidste 30 dage. Men hvordan gør jeg det?

SELECT TOP 5 ml.m_id, COUNT(*) AS m_logoncount, m.m_name
FROM memberlogon ml
INNER JOIN member m OM ml.m_id=m.m_id
WHERE ml.ml_date>dateadd(d, -30, getdate())
GROUP BY ml.m_id, m.m_name
ORDER BY COUNT(*) DESC

--
Anders

Jakob Munck (08-09-2001)
Kommentar
Fra : Jakob Munck


Dato : 08-09-01 23:13

Mange tak for denne SQL-kode, den er så avanceret, at jeg i stadet valgte at
opfinde en anden måde at måle login TOP 10 på, idet jeg installerede en
tællemekanisme ved hver enkelt bruger. Antallet af logins står nu i et tal
ved hver enkelt brugers record i databasen.

Men det giver mig så et andet problem, idet min SQL-kode skal udvælge de 10
brugere, der har det højeste tal i "antalLogin". Men hvis de brugere har det
samme tal (f.eks. 2 brugere der begge har været logget ind 4 gange), så skal
de sorteres indbyrdes efter ID-nummer.

Men hvordan er så SQL-koden for at lave både et primært og et sekundært
sorteringskriterium?

Jeg har skrevet sådan:

strSQL = "SELECT TOP 10 * FROM bruger where brugerNavn <> 'Webmaster' ORDER
BY antalLogin DESC"

Men den sorterer kun efter "antalLogin", altså hvor mange gange brugeren har
besøgt siten.

Hvordan tilføjer man til denne SQL-kode det sekundære sorteringskriterum,
som altså skal være "IDnr" ?


v.h.
Jakob Munck




Anders Holbøll (08-09-2001)
Kommentar
Fra : Anders Holbøll


Dato : 08-09-01 23:34

Jakob Munck wrote:
>
> Men det giver mig så et andet problem, idet min SQL-kode skal
> udvælge de 10 brugere, der har det højeste tal i "antalLogin".
> Men hvis de brugere har det samme tal (f.eks. 2 brugere der
> begge har været logget ind 4 gange), så skal de sorteres
> indbyrdes efter ID-nummer.

I "ORDER BY"-delen lister du blot de kolonner, der skal sorteres efter:

SELECT TOP 10 brugerId, brugerNavn, antalLogin
FROM bruger
WHERE NOT (brugerNavn = 'Webmaster')
ORDER BY antalLogin DESC, brugerId

--
Anders

Jakob Munck (10-09-2001)
Kommentar
Fra : Jakob Munck


Dato : 10-09-01 06:56

Mange tak !

jm



MacMan (10-09-2001)
Kommentar
Fra : MacMan


Dato : 10-09-01 17:55

I brevet "3b9a962b$0$270$edfadb0f@dspool01.news.tele.dk" skrev Jakob Munck
(jakob.munck@tdcadsl.dk) den 09/09/01 0:12:

> strSQL = "SELECT TOP 10 * FROM bruger where brugerNavn <> 'Webmaster' ORDER
> BY antalLogin DESC"

"SELECT TOP 10 * FROM bruger where brugerNavn <> 'Webmaster' ORDER BY
antalLogin DESC, IDnr"


Søg
Reklame
Statistik
Spørgsmål : 177508
Tips : 31968
Nyheder : 719565
Indlæg : 6408571
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste