---
title: "Plocka ut värden i en tabell"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/132488-plocka-ut-värden-i-en-tabell"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "henkepenka"
published: "2005-08-09T16:27:38.000Z"
updated: "2005-08-09T20:16:45.000Z"
replies: 7
views: 421
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/asp/132488-plocka-ut-värden-i-en-tabell"
---

# Plocka ut värden i en tabell

## #1 — henkepenka, 2005-08-09T16:27Z

Hej!

jag har en tabell i min databas som ser ut såhär:

Id \| infoId \| userId

1        1           1  \<---
2        1           2  \<---
3        3           1  \<---
4       45          1
5        9           2
6        3           2  \<---

Jag vill plocka ut de användarna (userId) som har infoId 1 och infoId 3. För att användarna 1 och 2 ska plockas ut måste både infoId 1 och 3 finnas.

Hur ska min SQL-sats skrivas? Jag får alla infoId´n i en array som jag splittar upp med följande kod:

```
arrSokProdukt = Split(txtId, ",")
For i = 0 To ubound(arrSokProdukt)    

<---SQL-SATSEN--->

Next
```

Vore toppen om någon kunde hjälpa mig med sql-satsen som ska vara i array-loopen...

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

## #2 — Peter S, 2005-08-09T16:40Z

/red

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

## #3 — LarsG, 2005-08-09T16:42Z

Vilken loop?

```
q = "select userid from t where infoid in (" & txtId & ")" & _
" group by userid having count(*) = " & cstr(len(txtId)-len(replace(txtId,",",""))+1)
```

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

## #4 — henkepenka, 2005-08-09T16:45Z

Såhär ser min SQL-sats ut om jag använder din kod:

select distinct t.userid from tabell t where t.infoid in (,1,7) Order By userId

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

## #5 — henkepenka, 2005-08-09T16:50Z

Med LarsG´s kod ser min SQL-sats ut såhär:

select userid from t where infoid in (,1,7) group by userid having count(\*) = 3 Order By userId

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

## #6 — emission, 2005-08-09T17:53Z

Enda problemet är att txtId börjar med ett kommatecken. Se till att få bort det så kommer det att gå fint.

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

## #7 — henkepenka, 2005-08-09T18:19Z

Vad är fel med denna sql-sats?

```
searchStr = "select user.userId, user.userLogin, user.userPostort, user.userCountry, user.userOnline, user.userLatestlogin, user.userCountLogin, user_info.userId user_info.infoId from user_info INNER JOIN user ON user_info.userId = user.userId where user_all.infoId in (" & txtId & ")" & _
" group by user_info.userId having count(*) = " & cstr(len(txtId)-len(replace(txtId,",",""))+1)
```

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

## #8 — emission, 2005-08-09T20:16Z

Eftersom du tar med fler kolumner än den du grupperar på (userId) så måste aggregat-funktioner appliceras på dessa. Aggregat-funktioner är t.ex COUNT, MAX, MIN, AVG etc. Dessutom refererar du till tabellen user_all som inte finns definierad via join eller tabell-listan.

Det finns många sätt att lösa detta på. Ett par exempel:

1\. Kör MAX eller MIN på alla kolumner utom userID

```
select user.userID, MAX(user.userLogin) .......
```

   Inte helt snyggt, men klart funktionellt

2\. Nästlad SELECT

```
searchStr = "select user.userId, user.userLogin, user.userPostort, user.userCountry, user.userOnline, user.userLatestlogin, user.userCountLogin, user_info.userId user_info.infoId from user_info INNER JOIN user ON user_info.userId = user.userId where usel.userId in (select userid from user_all where infoid in (" & txtId & ")" & _
" group by userid having count(*) = " & cstr(len(txtId)-len(replace(txtId,",",""))+1))"
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/132488-plocka-ut-värden-i-en-tabell
