webForumDet fria alternativet

Sortera och räkna

ASP

37 svar · 693 visningar · startad av Inferis · sida 2 av 2

Frågan, av Inferis

Jag har ingen kod och vet inte hur jag ska gå till väga. Vet inte vad jag ska söka efter. Jag vill följande; Hämta data (nick) ur en Access 2000 db Sortera dessa data och räkna hur många meddelanden vart har. I tabellen Senaste finns fälten ID, Nick, Meddelande och även datumet Alltså, i fältet Nick finns data som: - Bertil - Adam - Bertil - Adam - Adam - Adam - Ceasar - Berti

Läs frågan i sin helhet →
Medlem sedan sep. 2000667 inlägg
#21

Nope, ingen ordning. Kör nu med:

SQL = "SELECT Nick,COUNT(*),max(datumet) AS antal FROM Senaste GROUP BY Nick order by 3 desc"

Då blir resultatet:

Nicketsomlistasförst(2002-11-27 03:29:00)

Medlem sedan dec. 200012 464 inlägg
#22

3 innebär 3:e kolumnen i select-listan dvs max(datumet)

Vad är problemet nu?

Medlem sedan sep. 2002366 inlägg
#23

SQL = "SELECT Nick,COUNT(*) AS antal,max(datumet) FROM Senaste GROUP BY Nick order by 3 desc"

bör det väll vara?

-Eitraz

Medlem sedan sep. 2000667 inlägg
#24

Hade inte varit dumt med att lista så här:
Nick (antal poster) datum_på_senaste_post

Där man sorterar så att nyaste Meddelande kommer överst.

Medlem sedan sep. 2000667 inlägg
#25

Man lär sig nåt nytt varje dag säger dem..
jag har idag lärt mig för en vecka framåt! :-)

Tack ska ni ha!

Det duger utmärkt som det är nu. Den vill inte skriva ut datumet. men det är strunt samma.

Medlem sedan sep. 2002366 inlägg
#26
SQL = "SELECT Nick,COUNT(*) AS antal,max(datumet) as datumet FROM Senaste GROUP BY nick ORDER BY datumet DESC"
Set RS = Connect.Execute(SQL)
	Do Until RS.EOF
		Response.write RS("Nick") & " (" & RS("antal") & ")" & " " & RS("datumet") & "<br>"
	RS.MoveNext
	Loop
Set RS = Nothing

med datum o hela köret ska det där vara..

-Eitraz

Medlem sedan sep. 2000667 inlägg
#27

Eitraz:

Circular reference caused by alias 'datumet' in query definition's SELECT list

Medlem sedan sep. 2002366 inlägg
#28

ahh, deklarerade visst AS datumet.. och datumet är ett fält.. den fick nog lite problem där ;)
byt

SQL = "SELECT Nick,COUNT(*) AS antal,max(datumet) as [red]datum[/red] FROM Senaste GROUP BY nick ORDER BY [red]datum[/red] DESC"
Set RS = Connect.Execute(SQL)
	Do Until RS.EOF
		Response.write RS("Nick") & " (" & RS("antal") & ")" & " " & [red]RS("datum")[/red] & "<br>"
	RS.MoveNext
	Loop
Set RS = Nothing

-Eitraz

Medlem sedan dec. 200012 464 inlägg
#29

Access gillar inte att man använder befintliga kolumnnamn som alias. Det går heller inte att använda alias i order by.

SQL = "SELECT Nick,COUNT(*) AS antal,max(datumet) as maxDatumet FROM Senaste GROUP BY nick ORDER BY 3  DESC"
Set RS = Connect.Execute(SQL)
	Do Until RS.EOF
		Response.write RS("Nick") & " (" & RS("antal") & ")" & " " & RS("maxDatumet") & "<br>"
	RS.MoveNext
	Loop
Set RS = Nothing
Medlem sedan sep. 2002366 inlägg
#30

Men "order by alias" funkar i MySQL va? (bara access som är kräset?) ;)

-Eitraz

Medlem sedan dec. 200012 464 inlägg
#31

Jo, det är access som har en defekt i detta avseende.

Medlem sedan sep. 2000667 inlägg
#32

Nope, nu gnäller hon om
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

Medlem sedan sep. 2000667 inlägg
#33

LarsG:
Ditt sista fungerade!
Det andra hade funkat på MySQL?

Medlem sedan sep. 2002366 inlägg
#34

Jepp, det hade det.. Var tvungen o testa o det gick bra ;)

-Eitraz

Medlem sedan sep. 2000667 inlägg
#35

Men om jag nu vill sortera efter vartannat nick som postat på ojämna veckor och inte har skrivit ett meddelande som innehåller åä eller ö?

*skojar bara*
c",)

Tack ska ni har killar!

Medlem sedan sep. 2002366 inlägg
#36

:e
Nemas problemas :birp

-Eitraz

Medlem sedan juni 200032 inlägg
#37

<table width="150" border="0" cellpadding="0" cellspacing="0" class="asp10">
<%

Set ConnObj = SErver.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
ConnObj.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("admin/ranking/rate.mdb")
SQL = "Select Distinct(Nick) from ranking ORDER BY Nick ASC"
Set Rs = ConnObj.Execute(SQL)
Do Until Rs.EOF %>
<tr>
<% CountSQL = "Select Count(*) AS nCount from ranking Where Nick = '"& Rs("Nick") &"'"
Set antal = ConnObj.Execute(CountSQL)
Do Until antal.EOF
%>
<td width="100" height="16">
<%
Response.write Rs("Nick") %>
<td width="100" height="16">
<% Response.write antal("nCount") %>
<%
antal.MoveNext
Loop

Rs.MoveNext
Loop
ConnObj.Close
%>
<tr>
<td width="94"> 
<td width="87"> 
</table>

När jag använder denna kod så får jag fram en lista på Nickname och antal. Hur gör jag för att sortera efter antal.??

Har just nu ORDER BY Nick funkade ej med ORDER BY antal Varför??

Tacksam för svar.

Medlem sedan sep. 2002366 inlägg
#38

i raden
SQL = "Select Distinct(Nick) from ranking ORDER BY Nick ASC"
måste du då ha med antal i select, dvs:
SQL = "Select Distinct(Nick),antal from ranking ORDER BY antal ASC"

-Eitraz

301 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
162 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
162 ms — ändringar (db)