webForumDet fria alternativet

Distinct

12 svar · 266 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Har sökt lite men får ändå inte till det. Vill hämta de posterna som senast finns i databasen.

id - räknare
besokar_id - tal
mem_id - tal
datum - datum/tid

Set RS = Con.Execute("Select distinct(besokar_id),datum,mem_id FROM besokare Where mem_id=" & Request.QueryString("id") & " Order by datum")
LarsGMedlem sedan dec. 200012 464 inlägg
#2
Set RS = Con.Execute("Select besokar_id,max(datum), max(mem_id) FROM besokare " & _
"Where mem_id=" & Request.QueryString("id") & " group by besokar_id Order by datum")

Distinkt gäller alla kolumner i select-listan, det är inte en funktion.

AsaMedlem sedan dec. 20011 860 inlägg
#3

Jag får detta felmess med din kod.

Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna 
uttrycket 'datum'.

SQL´n

Set RS = Con.Execute("Select besokar_id,max(datum), max(mem_id) FROM besokare " & _
"Where mem_id=" & Request.QueryString("id") & " group by besokar_id Order by datum")
Engine^Medlem sedan dec. 20003 887 inlägg
#4

Eftersom max() är en mängdfunktion måste du nog ha med den i din GROUP BY... gissar jag på.

Set RS = Con.Execute("Select besokar_id,max(datum) as mDate, max(mem_id) as mId FROM besokare " & _
"Where mem_id=" & Request.QueryString("id") & " group by besokarid, mDate, mId Order by datum")

Lita nu inte så mycket på det här, men det vore kul om det fungerade.

Trial and error... that's how it gets done, yes?

AsaMedlem sedan dec. 20011 860 inlägg
#5

Felmess med denna kod:

Set RS = Con.Execute("Select besokar_id,max(datum) as mDate, max(mem_id) as mId FROM besokare Where mem_id=" & Request.QueryString("id") & " group by besokar_id, mDate, mId Order by mDate desc")
Det har inte angetts något värde för en eller flera nödvändiga parametrar.

id - räknare
besokar_id - tal
mem_id - tal
datum - datum/tid

Engine^Medlem sedan dec. 20003 887 inlägg
#6
Set RS = Con.Execute("Select besokar_id,max(datum), max(mem_id) FROM besokare & _
    Where mem_id=" & Request.QueryString("id") & " group by besokar_id, max(datum), max(mem_id) Order by mDate desc")

Nu sitter jag här och chansar känns det som...

Vart är LarsG när du behöver han? ;)

Engine^Medlem sedan dec. 20003 887 inlägg
#7

Ignorera senaste

Ursäkta mig... mängdfunktioner kan inte vara med som GROUP BY...

Ska testa lite mer. Återkommer kanske med ett svar som är rätt senare ;)

Engine^Medlem sedan dec. 20003 887 inlägg
#8

Hmm... kollade lite nu och tycker nog att LarsG's förslag ska fungera alldeles utmärkt. Men så kom jag på en sak...

Set RS = Con.Execute("Select besokar_id,max(datum), max(mem_id) FROM besokare group by" & _
          " besokarid [b]having mem_id = " & Request.QueryString("id") & "[/b] Order by datum")

Nu så kanske det fungerar :)

LarsGMedlem sedan dec. 200012 464 inlägg
#9

Ursäkta mig,så här då.

Set RS = Con.Execute("Select besokar_id,max(datum), max(mem_id) FROM besokare " & _
"Where mem_id=" & Request.QueryString("id") & " group by besokar_id Order by 2 ")
Engine^Medlem sedan dec. 20003 887 inlägg
#10

Hmm... vad menar du?

Problemet är väl inte ORDER BY utan WHERE... villkoret måste sitta på GROUP BY.

AsaMedlem sedan dec. 20011 860 inlägg
#11

En konstig grej. När jag ska skriva ut allt med din SQL LarsG så hittar den ej RS("datum"). Varför??

LarsGMedlem sedan dec. 200012 464 inlägg
#12

Det finns ingen kolumn som heter datum i resultatet.

Om du har ett uttryck i select.listan så har det inget namn om du inte namnger det.

select besokar_id,max(datum) as maxDatum, max(mem_id) as maxMem_id FROM besokare " & _
"Where mem_id=" & Request.QueryString("id") & " group by besokar_id Order by 2 ")

Om du gör så kan du använda maxDatum och maxMem_id i ditt recordset. Access tycker inte om att man använder ett befintligt kolumnnamn efter as.

Det går också bra att använda ordningsnummer. De startar på 0 så rs(1) motsvarar då andra uttrycket i select-listan.

AsaMedlem sedan dec. 20011 860 inlägg
#13

Tackar för snabbt svar! Nu funkar det fint!

131 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)