Avatar billede rane Nybegynder
24. marts 2003 - 22:36 Der er 10 kommentarer og
1 løsning

Top 5 og SUM

Hejsa,

jeg har følgende SQL:

SQL3 = "SELECT Spillerid, SUM(Antal_maal) as maal FROM Topscorer WHERE Holdid = " & holdid & " Group BY Spillerid  ORDER BY SUM(Antal_maal) DESC"

Den viser heeelt fint en topscorerliste - MEN...hvordan får jeg det begrænset til kun at være en Top 5 liste?

Har prøvet at sætte Top 5 ind flere steder i SQL'en, men får enten fejl - eller også viser den stadig alle spillerne.

Heeelp?! :)
Avatar billede medions Nybegynder
24. marts 2003 - 22:38 #1
SQL3 = "SELECT TOP 5 Spillerid, SUM(Antal_maal) as maal FROM Topscorer WHERE Holdid = " & holdid & " Group BY Spillerid  ORDER BY SUM(Antal_maal) DESC"

//>Rune
Avatar billede rane Nybegynder
24. marts 2003 - 22:40 #2
Well,

den viser stadig mere end 6 spillere :(
Avatar billede flashit Nybegynder
24. marts 2003 - 22:41 #3
er det ikke TOP 5*^

altså:

SQL3 = "SELECT TOP 5* Spillerid, SUM(Antal_maal) as maal FROM Topscorer WHERE Holdid = " & holdid & " Group BY Spillerid  ORDER BY SUM(Antal_maal) DESC"
Avatar billede rane Nybegynder
24. marts 2003 - 22:41 #4
Og det gør den vistnok hvis der er mange spillere der har samme mål-tal - hvodden fikses dette?
Avatar billede medions Nybegynder
24. marts 2003 - 22:42 #5
Well, så prøv:

While i = 0 To 5
  '...Udskriv spillere...
i = i + 1
objRs.MoveNext()
Wend

//>Rune
Avatar billede rane Nybegynder
24. marts 2003 - 22:42 #6
medions,

hvis jeg ændrer i databasen så de 6 øverste topscorere har forskelligt antal mål - så virker dit eksempel. Men hvis plads nummer 5 bliver delt af en stak spillere, viser den alle spillerne - kan dette ikke reduceres til 1 spiller kun på en måde?
Avatar billede medions Nybegynder
24. marts 2003 - 22:43 #7
SQL3 = "SELECT DISTINCT TOP 5 *, Spillerid, SUM(Antal_maal) as maal FROM Topscorer WHERE Holdid = " & holdid & " Group BY Spillerid  ORDER BY SUM(Antal_maal) DESC"

//>Rune
Avatar billede rane Nybegynder
24. marts 2003 - 22:48 #8
DISTINCT gør stadig at der bliver vist flere end 5 :(

Din tidligere While loop gav følgende fejl:
Error Type:
Microsoft VBScript compilation (0x800A0400)
Expected statement
/mz3/holdene.asp, line 244, column 12
While i = 0 To 5
-----------^
Avatar billede rane Nybegynder
24. marts 2003 - 22:55 #9
Hm.. ok jeg udskiftede  While i = 0 to 5    med  While i < 5

Og nu kom der sgu en top5 frem - spørgsmålet er bare om det er tilfældigt hvilke rækker den vælger IKKE at tage med, såfremt der er flere spillere med samme antal mål....
Avatar billede rane Nybegynder
24. marts 2003 - 22:57 #10
Den får du da lige points for - takker :)
Avatar billede medions Nybegynder
25. marts 2003 - 07:47 #11
*G* Fair nok.. Har skrevet alt alt for mange For...Next sætninger her på det sidste ;o)

Thx 4 Poinz

//>Rune
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester