05. august 2002 - 14:09Der er
12 kommentarer og 2 løsninger
10 mest populære artikler
I min artikeldatabase er oprettet en historik-tabel (Historik), som indeholder følgende:
Id (autonummering, Primary Key) Dato Artikler_Id user_id
Jeg søger en funktion, regner sammen hvor mange gange de enkelte Artikler_Id forekommer og udskriver de 10 "mest forekommende". Hvordan gør jeg det nemmest?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg forestiller mig noget i stil med at lægge summen af de enkelte Artikler_Id forekomster i et array, sortere dette, udvælge de 10 "største" og udskrive de artikler der passer på Artikler_Id'et.
Nu er der jo det ved det, at et givent Artikel_Id allerede optræder mange gange (i teorien uendeligt mange gange pr. bruger), så jeg vil helst bare have hentet hvor mange gange et givent Artikel_Id optræder i tabellen...
Det letest er umidbart at lave en SQL sætning som kan give det hele:
SQL = "SELECT TOP 10 Count(Artikler_Id) AS AntalArtikler, Artikler_Id FROM Historik GROUP BY Artikler_Id ORDER BY Count(Artikler_Id) DESC;"
set rs=conn.execute(strSQL) minVar = 1 nr = 1 Do while not rs.eof Response.write nr & ".: artikel ID: " & rs("Artikler_Id") & " antal: " & rs("AntalArtikler") & "<br>" nr = nr + 1 rs.movenext Loop
Eagleeye, er det muligt at lave det sådan så det kører i en løkke, som kun viser de 10 første, også selv om f.eks. 100 artikler alle har lige mange hits? (har prøvet et par forskellige ting, men synes ikke rigtig det virker.)
Ja du kan tilføje nr til do while og stopper ved 10:
SQL = "SELECT TOP 10 Count(Artikler_Id) AS AntalArtikler, Artikler_Id FROM Historik GROUP BY Artikler_Id ORDER BY Count(Artikler_Id) DESC;"
set rs=conn.execute(strSQL) minVar = 1 nr = 1 Do while (not rs.eof) AND (nr <= 10) Response.write nr & ".: artikel ID: " & rs("Artikler_Id") & " antal: " & rs("AntalArtikler") & "<br>" nr = nr + 1 rs.movenext Loop
Takker mange gange, nu har jeg noget kode der kører, flest point til eagleeye, som leverede en kode tættest på det jeg er endt med, men også til cthun for det rigtig gode forslag...
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.