---
title: "får inte till min join"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/177752-får-inte-till-min-join"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "WebbisNet"
published: "2009-03-30T17:28:52.000Z"
updated: "2009-03-30T19:20:49.000Z"
replies: 9
views: 395
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/177752-får-inte-till-min-join"
---

# får inte till min join

## #1 — WebbisNet, 2009-03-30T17:28Z

I ena tabellen tblMotive har jag kortkat som är kategorin
I den andra tabellen tblKortKategori har jag kat som är kategorierna

I tabell 1 har jag en post med kategori 1 och i andra tabellen ligger alla 8 kategorier

Det jag vill är att när jag skriver ut alla kategorier så ska det bara stå en 1-a på antal i den första kategorin och en nolla på de andra eftersom det inte finns nån post för dem i tblMotive

```
Set mRS1 = ObjConn.Execute("SELECT count(*) as antal FROM tblmotive FULL JOIN tblKortKategori on tblmotive.Kortkat=tblKortKategori.kat")
```

med denna sql får jag
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

\[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-5.0.45-community-nt\]Unknown column 'tblmotive.Kortkat' in 'on clause' 

/Ekort/Default.asp, line 14

Nu är det 
test \[1 kort\] Vår \[1 kort\] 
Sommar \[1 kort\] Höst \[1 kort\] 
Vinter \[1 kort\] Kärlek \[1 kort\] 
Konst \[1 kort\] Natur \[1 kort\] 

Jag vill ha
test \[1 kort\] Vår \[0 kort\] 
Sommar \[0 kort\] Höst \[0 kort\] 
Vinter \[0 kort\] Kärlek \[0 kort\] 
Konst \[0 kort\] Natur \[0 kort\]

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

## #2 — Peter S, 2009-03-30T17:42Z

Felmeddelandet säger att det inte finns någon kolumn som heter "Kortkat" i tblMotive.

```
select k.<kategorinamn>, count(*) as antal
from tblkortkategori k left join tblmotive m
on m.kortkat = k.kat
group by k.<kategorinamn>
```

...ändra i ovanstående dels "\<kategorinamn\>" till det kolumnnamn som innehåller namnet på kategorin, dels "kortkat" till det kolumnnamn som motsvarar "kat".

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

## #3 — WebbisNet, 2009-03-30T17:46Z

Detta är tabellen tblMotive

```
+---------+----+--------------+--------------------+-----------------+---------+--------+
| Kortkat | id | motive       | motiveSmall        | sender          | special | cardOK |
+---------+----+--------------+--------------------+-----------------+---------+--------+
|       1 |  1 | testkort.png | testkort_small.png | [email]stefan@stene.nu[/email] |       0 |      0 |
+---------+----+--------------+--------------------+-----------------+---------+--------+
```

och detta är kortkategori

```
+-----+--------+---------------+---------------+---------+
| kat | visa   | visaDatumFran | visaDatumTill | katNamn |
+-----+--------+---------------+---------------+---------+
|   1 |      1 | [NULL]        | [NULL]        | test    |
|   2 |      1 | [NULL]        | [NULL]        | V&#65533;&#65533;r    |
|   3 |      1 | [NULL]        | [NULL]        | Sommar  |
|   4 |      1 | [NULL]        | [NULL]        | H&#65533;&#65533;st   |
|   5 |      1 | [NULL]        | [NULL]        | Vinter  |
|   6 |      1 | [NULL]        | [NULL]        | K&#65533;&#65533;rlek |
|   7 |      1 | [NULL]        | [NULL]        | Konst   |
|   8 |      1 | [NULL]        | [NULL]        | Natur   |
+-----+--------+---------------+---------------+---------+
```

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

## #4 — Peter S, 2009-03-30T18:01Z

Då skall det se ut så här:

```
select k.katNamn, count(*) as antal
from tblkortkategori k left join tblmotive m
on m.kortkat = k.kat
group by k.katNamn
```

...men, som sagt, av felmeddelandet att döma verkar det inte som att kolumnen "kortkat" existerar i tblmotive.

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

## #5 — WebbisNet, 2009-03-30T18:14Z

med

```
Set mRS1=objConn.Execute("select k.kat, count(*) as antal from tblkortkategori k left join tblmotive m on m.kortkat = k.kat group by k.kat")
```

är det bara ettor i alla antal fortfarande, är det nåt jag har missförstått?

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

## #6 — Peter S, 2009-03-30T18:22Z

```
select k.kat, sum(case when m.kortkat is null then 0 else 1 end) as antal
from tblkortkategori k left join tblmotive m
on m.kortkat = k.kat
group by k.kat
```

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

## #7 — WebbisNet, 2009-03-30T18:38Z

samma resultat, jag får försöka snoka lite efter vad som är fel. Visar här hur själva kärnan i koden ser ut

```
<%Set counter=ObjConn.Execute("select Count(id) as Skickade from tblKort")
Set motiveRS=ObjConn.Execute("select Count(id) as Antal from tblMotive where cardOK=0")
Set markeRS=ObjConn.Execute("select Count(id) as Antal from tblStamps")

Set mRS = ObjConn.Execute("SELECT * FROM tblKortKategori where visa=1")

Set mRS1=objConn.Execute("select k.kat, sum(case when m.kortkat is null then 0 else 1 end) as antal from tblkortkategori k left join tblmotive m on m.kortkat = k.kat group by k.kat")

Set sRS=ObjConn.Execute("select * from tblMotive")%>

<%
Dim x, page
page="index.asp"

Do until mRS.eof

	If x Mod 3 = 0 Then Response.write "</tr><tr>" : x = 1
	Response.write "<td><a class=""menu"" href="""& page &"?kat="& mRS("kat") &"""><b>"& mRS("katNamn") &" ["& mRS1("antal") &" kort]</b></a></td>"
	x=x+1

mRS.MoveNext
Loop
%>
```

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

## #8 — Peter S, 2009-03-30T18:45Z

Ja, alltså, du skriver ju ut samma record hela tiden från mRS1. Du måste stega framåt i det också.

Sedan är det ingen bra lösning du har på G där. mRS och mRS1 borde du försöka slå ihop till en fråga.

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

## #9 — WebbisNet, 2009-03-30T18:46Z

förslag på hur jag ska skriva? :-)

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

## #10 — Peter S, 2009-03-30T19:20Z

```
<%Set counter=ObjConn.Execute("select Count(id) as Skickade from tblKort")
Set motiveRS=ObjConn.Execute("select Count(id) as Antal from tblMotive where cardOK=0")
Set markeRS=ObjConn.Execute("select Count(id) as Antal from tblStamps")

'Set mRS = ObjConn.Execute("SELECT * FROM tblKortKategori where visa=1")

Set mRS1=objConn.Execute("select k.kat, k.katnamn, sum(case when m.kortkat is null then 0 else 1 end) as antal from tblkortkategori k left join tblmotive m on m.kortkat = k.kat group by k.kat, k.katnamn")

Set sRS=ObjConn.Execute("select * from tblMotive")%>

<%
Dim x, page
page="index.asp"

Do until mRS1.eof

	If x Mod 3 = 0 Then Response.write "</tr><tr>" : x = 1
	Response.write "<td><a class=""menu"" href="""& page &"?kat="& mRS1("kat") &"""><b>"& mRS1("katNamn") &" ["& mRS1("antal") &" kort]</b></a></td>"
	x=x+1

mRS1.MoveNext
Loop
%>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/177752-får-inte-till-min-join
