---
title: "Distinct"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/62588-distinct"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Asa"
published: "2002-12-19T00:30:22.000Z"
updated: "2002-12-20T18:40:56.000Z"
replies: 12
views: 266
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/62588-distinct"
---

# Distinct

## #1 — Asa, 2002-12-19T00:30Z

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")
```

Permalänk: https://www.webforum.nu/p/62588

## #2 — LarsG, 2002-12-19T10:30Z

```
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.

Permalänk: https://www.webforum.nu/p/891523

## #3 — Asa, 2002-12-19T11:19Z

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")
```

Permalänk: https://www.webforum.nu/p/891541

## #4 — Engine^, 2002-12-19T11:28Z

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?

Permalänk: https://www.webforum.nu/p/891545

## #5 — Asa, 2002-12-19T11:35Z

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

Permalänk: https://www.webforum.nu/p/891550

## #6 — Engine^, 2002-12-19T11:48Z

```
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? ;)

Permalänk: https://www.webforum.nu/p/891554

## #7 — Engine^, 2002-12-19T11:52Z

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 ;)

Permalänk: https://www.webforum.nu/p/891558

## #8 — Engine^, 2002-12-19T12:02Z

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 :)

Permalänk: https://www.webforum.nu/p/891561

## #9 — LarsG, 2002-12-19T12:43Z

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 ")
```

Permalänk: https://www.webforum.nu/p/891578

## #10 — Engine^, 2002-12-19T13:04Z

Hmm... vad menar du?

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

Permalänk: https://www.webforum.nu/p/891598

## #11 — Asa, 2002-12-20T18:19Z

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

Permalänk: https://www.webforum.nu/p/892449

## #12 — LarsG, 2002-12-20T18:28Z

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.

Permalänk: https://www.webforum.nu/p/892454

## #13 — Asa, 2002-12-20T18:40Z

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

Permalänk: https://www.webforum.nu/p/892461

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/62588-distinct
