---
title: "Plocka ut data från två tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/127991-plocka-ut-data-från-två-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "MickeA.com"
published: "2005-05-11T06:33:41.000Z"
updated: "2005-06-13T12:10:28.000Z"
replies: 17
views: 424
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/127991-plocka-ut-data-från-två-tabeller"
---

# Plocka ut data från två tabeller

## #1 — MickeA.com, 2005-05-11T06:33Z

Hej
Jag har två tabeller (Access), en där jag lagrar servicebesök (tbl_service) och en där jag lagrar ev. anmärkningar (tbl_anm).
Tabellerna ser ut som följer:

```
tbl_service
---------------------
Service_ID (räknare)
Hiss_ID (text)
Service_Datum (Datum / Tid)
Service_Anm (Ja / Nej)
---------------------

tbl_anm
---------------------
Anm_ID (räknare)
Service_ID (text)
Anm_Text (text)
Anm_Done (Ja / Nej)
---------------------
```

Nu vill jag kunna plocka ut ev. anmärkningar från det senaste servicebesöket, med villkoret att **Anm_Done** är **Falskt** och detta för en speciell hiss,
baserat på **Hiss_ID**, som jag vill ange i frågan (alltså vilket objekt det gäller.
Skulle det vara så att **Service_Anm** i tabellen *tbl_service* är **Falskt**, finns inget att hämta från *tbl_anm*.

Hur ska jag lösa det här på bästa sätt?
Tack på förhand!

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

## #2 — @nders, 2005-05-11T06:38Z

Till att börja med, varför är Hiss_ID i tbl_service och Service_ID i tbl_anmn av texttyp? Det är väl numeriska ID:n? De skall vara av samma typ som det du ska joina emot, dvs tal.

Börja med att fixa det.

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

## #3 — MickeA.com, 2005-05-11T06:48Z

> **@nders skrev:**
>
> Till att börja med, varför är Hiss_ID i tbl_service och Service_ID i tbl_anmn av texttyp? Det är väl numeriska ID:n? De skall vara av samma typ som det du ska joina emot, dvs tal.
> 
> Börja med att fixa det.

Hiss_ID är av typen text, eftersom det är ett replikerings-id, med bokstäver och siffror blandat.
Service_ID i tabellen tbl_anm kan jag därimot ändra, för det är tal. Vet ej varför jag har text där, hjärnsläpp möjligen.

Men kom gärna med ett förslag på sql fråga, så jag får igång hjärnan.

Tack!

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

## #4 — @nders, 2005-05-11T06:50Z

Ok, så länge fälten är av samma typ i alla tabeller du ska kunna koppla ihop så är det ju lugnt.

Jag återkommer med förslag till fråga om ingen annan hinner först.

mvh

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

## #5 — MickeA.com, 2005-05-11T06:58Z

> **@nders skrev:**
>
> Ok, så länge fälten är av samma typ i alla tabeller du ska kunna koppla ihop så är det ju lugnt.
> 
> Jag återkommer med förslag till fråga om ingen annan hinner först.
> 
> mvh

Hmm, men då struntar jag i att byta typ på *service_id*, för i nuläget är **Hiss_ID** av typen text och **Service_Id **(i tabellen *tbl_anm*) likaså.****

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

## #6 — @nders, 2005-05-11T07:04Z

ServiceID är ju en räknare i tbl_service, då kan du väl inte ha det som text i tbl_anm?

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

## #7 — MickeA.com, 2005-05-11T07:09Z

> **@nders skrev:**
>
> ServiceID är ju en räknare i tbl_service, då kan du väl inte ha det som text i tbl_anm?

Nej visst faan, stämmer bra.
Men om jag ändrar **service_id** i tabellen *tbl_anm* till TAL, då funkar det alltså som jag vill?

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

## #8 — @nders, 2005-05-11T07:11Z

Om du ändrar typen till tal, då kan du i alla fall göra en join mellan tabellerna.

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

## #9 — MickeA.com, 2005-05-11T07:18Z

> **@nders skrev:**
>
> Om du ändrar typen till tal, då kan du i alla fall göra en join mellan tabellerna.

Ok, kan du dra ett exempel på hur jag skulle kunna bygga upp frågan?

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

## #10 — @nders, 2005-05-11T07:19Z

Jag sade ju att jag skulle återkomma med förslag, tjata inte. ;)

Förslag:

```
SELECT TOP 1 * FROM tbl_service INNER JOIN tbl_anm ON tbl_service.ServiceID = tbl_anm.ServiceID
WHERE tbl_service.Hiss_ID = 'foo' AND tbl_anm.Anm_Done = False
ORDER BY tbl_service.Service_Datum DESC, tbl_service.Service_ID DESC
```

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

## #11 — MickeA.com, 2005-05-11T07:22Z

> **@nders skrev:**
>
> Jag sade ju att jag skulle återkomma med förslag, tjata inte. ;)

Hmm, ok, vi kallar det påminnelse då, istället för tjat ;)

Tack!

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

## #12 — MickeA.com, 2005-06-13T11:42Z

Nu har jag återupptagit den här tråden lite, har inte haft tid förrän nu.
Får ett felmeddelande när jag kör ovanstående:

```
Microsoft JET Database Engine error '80040e10' 

No value given for one or more required parameters. 

/print_anm.asp, line 99
```

Rad 99 är SQL-Frågan.

Jag har provat att skriva ut frågan och allt som ska vara med verkar komma med:

```
SELECT TOP 1 * FROM tbl_service INNER JOIN tbl_anm ON tbl_service.ServiceID = tbl_anm.ServiceID WHERE tbl_service.Hiss_ID = '{00000495-0000-0000-0000-000000000000}' AND tbl_anm.Anm_Done = False ORDER BY tbl_service.Service_Datum DESC, tbl_service.Service_ID DESC
```

Vad kan det vara som saknas?

Tack!

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

## #13 — @nders, 2005-06-13T11:43Z

Du har skrivit fel på ett fältnamn. Heter fältet *ServiceID* eller heter det *Service_ID*?
Jag är medveten om att felskrivningen kommer från mitt inlägg, men det är lite svårt att koda i blindo...

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

## #14 — MickeA.com, 2005-06-13T12:02Z

Det var precis så det låg till, tack för hjälpen.

Men nu uppstod ett kryptiskt felmess, som jag sökt på, men inte hittat en lösning:

```
error '80020009' 
/print_anm.asp, line 116
```

Rad 116 är SQL-Frågan.

Min kod ser ut såhär:

```
<%
	sSql =	"SELECT TOP 1 Anm_Text " &_
			"FROM tbl_service " &_
			"INNER JOIN tbl_anm " &_
			"ON tbl_service.Service_ID = tbl_anm.Service_ID " &_
			"WHERE tbl_service.Hiss_ID = '" & oRec("Hiss_ID") & "' " &_
			"AND tbl_anm.Anm_Done = False " &_
			"ORDER BY tbl_service.Service_Datum DESC, tbl_service.Service_ID DESC"

'	Response.Write(sSql)
'	response.end
	Set rS = oConn.Execute(sSql)
	If Not rS.EOF Then
		Do While Not oRec.EOF
			Response.Write(rS("Anm_Text") & "<br>")
		rS.MoveNext
		Loop
	Else
		Response.Write("<i>Inga Anmärkningar föregående besök.</i>")
	End If
	Set rS = Nothing
%>
```

Någon som vet hur jag löser det här?

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

## #15 — @nders, 2005-06-13T12:05Z

Jag tror inte på att rad 116 är SQL-frågan. Jag tror att felet är detta:

```
	If Not [b]rS[/b].EOF Then
		Do While Not [b]oRec[/b].EOF
```

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

## #16 — MickeA.com, 2005-06-13T12:06Z

Hmm, hittade varför det blir så men kommer inte fram till hur jag löser det.
Fältet heter "Anm_Text" och finns i tabellen "tbl_anm" och inte i "tbl_service" ur vilken frågan försöker plocka ur detta.

Så jag måste alltså vända på frågan på något sätt.

Idéer någon?
Tack!

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

## #17 — @nders, 2005-06-13T12:09Z

Det borde inte spela någon roll, men när du korrigerat enl. mitt förslag ovan kan du ju alltid i SQL-frågan specificera vilken tabell du vill hämta fältet ifrån.

```
	sSql =	"SELECT TOP 1 tbl_anm.Anm_Text " &_
```

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

## #18 — MickeA.com, 2005-06-13T12:10Z

> **@nders skrev:**
>
> Jag tror inte på att rad 116 är SQL-frågan. Jag tror att felet är detta:
>
> ```
> 	If Not [b]rS[/b].EOF Then
> 		Do While Not [b]oRec[/b].EOF
> ```

Visst stämde det med!
Ändrade på det stället och vände även på sqlfrågan:

```
sSql =	"SELECT TOP 1 Anm_Text " &_
	"FROM tbl_anm " &_
	"INNER JOIN tbl_service " &_
	"ON tbl_service.Service_ID = tbl_anm.Service_ID " &_
	"WHERE tbl_service.Hiss_ID = '" & oRec("Hiss_ID") & "' " &_
	"AND tbl_anm.Anm_Done = False " &_
	"ORDER BY tbl_service.Service_Datum DESC, tbl_service.Service_ID DESC"
```

Nu funkar det precis så som jag vill, tack för all hjälp!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/127991-plocka-ut-data-från-två-tabeller
