Är kanske inte den bästa lösningen men den bör fungera..
<%
Set ConnObj=Server.CreateObject("ADODB.Connection")
ConnObj.Open "DBQ=c:\inetpub\scripts\din_DB.mdb;DRIVER=Microsoft Access Driver (*.mdb)"
SQL = "Select Distinct(Nick) from Senaste ORDER BY Nick ASC"
Set Rs = ConnObj.Execute(SQL)
Do Until Rs.EOF
CountSQL = "Select Count(*) AS nCount from Senaste Where Nick = '"& Rs("Nick") &"'"
Set Rs2 = ConnObj.Execute(CountSQL)
Do Until Rs2.EOF
Response.write Rs("Nick") & "(" & Rs2("nCount") & ")"
Rs2.MoveNext
Loop
Rs.MoveNext
Loop
ConnObj.Close
%>
Du kan skriva det där med en öppning bara.
Såhär: (där Connect är ditt databasobjekt)
SQL = "SELECT Nick,Meddelande,datumet,COUNT(*) AS antal FROM Senaste GROUP BY Nick"
Set RS = Connect.Execute(SQL)
Do Until RS.EOF
Response.write RS("Nick") & "(" & RS("antal") & ")<br>"
RS.MoveNext
Loop
Set RS = Nothing
Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'Meddelande' as part of an aggregate function
SQL = "SELECT Nick,COUNT(*) AS antal FROM Senaste GROUP BY Nick"
Om man använder group by så måste alla kolumner i select-listan ingå antingen i en aggregatfunktion eller finnas med i group by. Det har alla dbms-tillverkare utom Mysql förstått.
Distinct är ingen funktion. Den appliceras alltid på alla kolumner i resultatet.
Du kan sortera efter namn
SQL = "SELECT Nick,COUNT(*) AS antal FROM Senaste GROUP BY Nick order by nick"
eller antal
SQL = "SELECT Nick,COUNT(*) AS antal FROM Senaste GROUP BY 2 desc"