webForumDet fria alternativet

Top10 med count.

ASP

8 svar · 292 visningar · startad av Wiklund!!

Medlem sedan juli 2002549 inlägg
Frågan#1

Vill lista de 10 populäraste länderna. Jag har fått till så att de populäraste länderna visas men jag vill också kunna se hur många medlemmar som kommer från just det landet.

Här är min kod:

<%sql = "select top 10 country from users order by 1 desc"
set RecSet = connect.execute(sql)
number = 0
do while not RecSet.eof
number = number + 1%>

<b><%=number%>.</b> <%=RecSet("country")%><br>
  
<%if number = 10 then exit do
RecSet.movenext
loop%>
Medlem sedan maj 2001156 inlägg
#2

Hej prova följande

<%
sql = "SELECT TOP 10 country, COUNT(*) AS Antal FROM users GROUP BY country ORDER BY Antal DESC"
set RecSet = connect.execute(sql)
number = 0
do while not RecSet.eof
  number = number + 1%>
  <b><%=number%>.</b> <%=RecSet("country")%> -  <%=RecSet("Antal")%><br>
<%
RecSet.movenext
loop
%>

Mvh
David

Medlem sedan juli 2002549 inlägg
#3

Problemet är att jag inte har någon kolumn som heter Antal. Utan jag måste på nått sätt räkna ut hur många som valt de 10 populäraste länderna!

Medlem sedan juni 200032 967 inlägg
#4

Liten ändring i wazids förslag:

<%
sql = "SELECT TOP 10 country, COUNT(*) AS Antal FROM users GROUP BY country [b]ORDER BY 2 DESC[/b]"
set RecSet = connect.execute(sql)
number = 0
do while not RecSet.eof
  number = number + 1%>
  <b><%=number%>.</b> <%=RecSet("country")%> -  <%=RecSet("Antal")%><br>
<%
RecSet.movenext
loop
%>

Mvh

Medlem sedan dec. 200012 464 inlägg
#5

Du behöver ingen kolumn som heter antal. Det är bara ett namn på den kolumn som innehåller värdet av count. Har du testat frågan? (Den fungerar inte i Access dock.)

sql = "SELECT TOP 10 country, COUNT(*) AS Antal FROM users GROUP BY country ORDER BY 2 DESC"
Medlem sedan juli 2002549 inlägg
#6

Valde Anders förslag. Fungerar fin fint. Trodde dock att <%=RecSet("Antal")%> skulle strula till det i och med att det inte fanns någon kolumn i databasen som hette Antal.

Medlem sedan juni 200032 967 inlägg
#7

Man kan sätta namn (alias) på fält i SQL-frågan, exempelvis för att lättare referera till fältet när det ska skrivas ut. Det gör man med AS, som i frågan ovan.

Mvh,

Medlem sedan dec. 20003 887 inlägg
#8

LarsG skrev:

Du behöver ingen kolumn som heter antal. Det är bara ett namn på den kolumn som innehåller värdet av count. Har du testat frågan? (Den fungerar inte i Access dock.)

sql = "SELECT TOP 10 country, COUNT(*) AS Antal FROM users GROUP BY country ORDER BY 2 DESC"

Varför fungerar den inte med Jet SQL?

Medlem sedan juni 200032 967 inlägg
#9

Jo, den frågan fungerar med Jet SQL, men inte om man anger att sortera på det nyskapade fältet, i det här fallet antal. Det som inte går med Jet SQL är alltså ORDER BY Antal DESC, som i wazids exempel.

Mvh,

267 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)