webForumDet fria alternativet
Logga in / Bli medlem

Select distinct från en kolumn

Databaser & SQL

7 svar · 229 visningar · startad av Ankman

Medlem sedan juni 2002116 inlägg
Frågan#1

Hur gör jag för att välja ut poster distinct från kolumnen userinfo utan att bry sig om att kolumnen tid har olika värden?

Så här ser min SQL-fråga ut nu:

SQL = "SELECT TOP 10  userinfo, tid FROM users ORDER BY tid DESC"

Jag har provat att lägga till DISTINCT men det funkar inte eftersom dubletterna i userinfo inte har samma värde i kolumnen tid (antar jag).

Hälsningar Andreas

Medlem sedan dec. 200012 464 inlägg
#2

Vilket värde från kolumnen tid vill du ha om det finns flera poster med samma userinfo? Största minsta vilket som helst?

Medlem sedan juni 2002116 inlägg
#3

Största

Medlem sedan dec. 200012 464 inlägg
#4
SQL = "SELECT TOP 10  userinfo, max(tid) FROM users group by userinfo ORDER BY 2 DESC"
Medlem sedan juni 2002116 inlägg
#5

Jag får:

ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.

på raden där jag använder rs("userinfo") och rs("tid"). Stavningen är korrekt.

Vad betyder för övrigt "ORDER BY 2"?

Medlem sedan feb. 20022 594 inlägg
#6

Kanske så här då:

SQL = "SELECT TOP 10  userinfo, max(tid) as strMaxTime FROM users group by userinfo ORDER BY 2 DESC"

Sen skriver du ut det med

rs("strMaxTime")

Eller var det inte så du menade?

Medlem sedan juni 2002116 inlägg
#7

Funkar suveränt. Tack!

Varför skriver man ORDER BY 2 DESC (vad betyder 2:an)?

Medlem sedan juni 200032 967 inlägg
#8

Det innebär att sorteringen görs fallande (Descending) på fält nummer två du specificerat i din Selectlista. De flesta dbms tillåter att man skriver ORDER BY strMaxTime istället, men inte Access, där måste du skriva ordningstalet.

Mvh,

256 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)