---
title: "krånglig kategorisering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11176-krånglig-kategorisering"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "OveRRidE"
published: "2001-08-17T07:11:00.000Z"
updated: "2001-08-18T16:25:00.000Z"
replies: 24
views: 342
page: 1
pages: 2
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/11176-krånglig-kategorisering"
---

# krånglig kategorisering

_Sida 1 av 2._

## #1 — OveRRidE, 2001-08-17T07:11Z

Ok nu skall ni få nåt att bita i. Jag har iaf inte lyckats lösa det, men jag förvånar mig inte ifall ni gör det. :)

Jag har en **stor** databas med följande struktur:

**Tabeller**
\-------------
\-kat
\-kat_join
\-priser

**1\. Kat
\-----------**
Kat - primärnyckel och katid
Katnamn - string

**2\. Kat_join
\----------------**
ID - primärnyckel
Artnr - string
Katid - numerisk

**3\. Priser
\---------------**
Den enda relevanta kolumnen är:
Artnr - string

Ok.. nu till problemet. :)

Jag har i tabellen priser, ett unikt artikelnummer på varje produkt. Denna tabell kan jag inte spara någon data i eftersom den uppdateras (importeras från txt-fil) dagligen med ny data, vilket omöjliggör att jag skapar en kolumn med kategori-id i. Annars hade det hela varit ganska lätt. :)

(Kategorierna som är i tabellen idag skall inte användas, jag skall göra egna, mer förenklade.) 

Nu är det så att jag måste använda artikelnumret för att identifiera vilken kategori den ligger i. 

Därför har jag gjort en tabell till, **kat** där jag namnger kategorierna och ger var och en ett unikt katid-nummer. (se tabell 1 ovan)

I nästa tabell (tabell 2), **kat_join** kommer ju då specen på vilka produkter som tillhör vilken kategori (eftersom vi inte kan göra detta direkt i "priser"). 

Detta skapar ett problem för min skalle då jag skall lista alla kategorier, och sedan lista produkterna under den, när man klickar på den. 

**Relaterade kolumner:**
**kat.kat** relaterar till **kat_join.katid**
**kat_join.artnr** relaterar till **priser.artnr**

Är det nån som förstår vad jag menar?? :q

Pliz help.

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

## #2 — @nders, 2001-08-17T07:32Z

du vill alltså ha två sql-frågor,
1) listar alla kategorier som innehåller någon produkt, och
2) en som listar alla produkter i given kategori

har jag förstått dig rätt?

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

## #3 — OveRRidE, 2001-08-17T07:34Z

ja. men det är inte där problemet ligger. 

mitt problem är hur sql-satsen skall se ut..

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

## #4 — @nders, 2001-08-17T07:46Z

jag förstod det, men jag ville bara se så att jag förstod vad du var ute efter. :)

något sånt här kanske:

1)

```
select distinct kat, katnamn from kat, katjoin, priser where kat = kat_join.katid and kat_join.artnr = priser.artnr order by katnamn
```

2)

```
select priser.* from priser, kat_join where priser.artnr = kat_join.artnr and kat_join.katid = 3
```

mvh,

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

## #5 — OveRRidE, 2001-08-17T07:48Z

glöm detta inlägg :)

\[Redigerat av OveRRidE den 17 aug 2001\]

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

## #6 — OveRRidE, 2001-08-17T07:48Z

en fråga innan jag testar.. 

vad innebär distinct?

det betyder ju typ utpräglad.. men i vilket sammanhang hamnar det i SQL?

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

## #7 — OveRRidE, 2001-08-17T07:50Z

Sen tror jag denna satsen kommer att generera ett fel.. 

```
select distinct kat, katnamn from kat, katjoin, priser where [b]kat[/b] = kat_join.katid and kat_join.artnr = priser.artnr order by katnamn
```

eller?

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

## #8 — OveRRidE, 2001-08-17T07:53Z

```
Microsoft JET Database Engine error '80004005' 

The specified field 'kat' could refer to more than one table listed in the FROM clause of your SQL statement. 

/kategori.asp, line 11
```

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

## #9 — @nders, 2001-08-17T08:04Z

byt ut kat mot **kat.kat**.

sorry.

distinct betyder att endast ett entry av varje förekomst returneras, dvs, alla dubletter kastas bort på vägen.

(frågan kommer alltså returnera alla unika kombinationer av kat och katnamn).

red: jag visste ju inte att du hade ett fält som hette kat i någon av de andra tabellerna, ju.

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

## #10 — mrblonde, 2001-08-17T08:04Z

blir förvirrad av namnen i tabellerna.
en bra sak för att göra det hela mer läsbart är att döpa tabeller till
tblTabellnamn samt attribut till TabellnamnAttributnamn. Då slipper man alla risker för krockar, det är tydligt när man reder i det vilken tabell och vilket attribut man pratar om.

```
ex:
tblSkola
skolaid
skolanamn

tblElev
elevfirstname
elevlastname
elevskolaid
```

Allt blir tydligt, man ser nycklar och kopplingar lätt.

Detta var inte mycket hjälp, men ett litet korståg för bättre och mer läsbar kod. ja ja... jag undviker att debugga min kod just nu och ägnar tid åt annat.

suck... tebax till COM objektet. :(

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

## #11 — OveRRidE, 2001-08-17T08:18Z

Jag får

```
Microsoft JET Database Engine error '80004005' 

The specified field 'kat' could refer to more than one table listed in the FROM clause of your SQL statement. 

/kategori.asp, line 11
```

**mrblonde:** javet, jag har gjort det innan och jag funderar på att göra det igen. 

återkommer efter test.

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

## #12 — @nders, 2001-08-17T08:22Z

> byt ut kat mot kat.kat.

alltså:

```
select distinct kat.kat, katnamn from kat, katjoin, priser where kat = kat_join.katid and kat_join.artnr = priser.artnr order by katnamn
```

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

## #13 — OveRRidE, 2001-08-17T08:39Z

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

No value given for one or more required parameters. 

/kategori.asp, line 11
```

:(

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

## #14 — OveRRidE, 2001-08-17T08:56Z

...someone.. ? :)

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

## #15 — @nders, 2001-08-17T08:56Z

har du skrivit sql-frågan precis som ovan?

hur ser rad 11 ut?

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

## #16 — OveRRidE, 2001-08-17T09:00Z

rad 11 är SQL-satsen. 

jag jag har skrivit den som den är. jag har dock ändrat lite, det var nämligen ett fel:

```
select distinct kat.kat, katnamn from kat, [b]katjoin[/b], [red]priser where kat = kat_join.katid and kat_join.artnr = priser[/red].artnr order by katnamn
```

priser heter egentligen inte priser, men det har jag bara stavat om. Sen skall det vara kat**\_**join.. :)

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

## #17 — OveRRidE, 2001-08-17T09:03Z

Skall det inte vara nåt mer här med? :q

```
select distinct kat.kat, katnamn from kat, kat_join, priser where [b]kat[/b] = kat_join.katid and kat_join.artnr = priser.artnr order by katnamn
```

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

## #18 — @nders, 2001-08-17T09:05Z

jo, kat.kat där också. :)

(håller dock med mrblonde om att du bör fixa lite bättre namn... :) )

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

## #19 — OveRRidE, 2001-08-17T09:08Z

Ok.. \*lets play all our cards\* ;)

nu ser frågan ut såhär:

```
select distinct kat.kat, katnamn from kat, kat_join, priswebsverige where kat.kat = kat_join.katid and kat_join.artnr = priswebsverige.artnr order by katnamn
```

och jag får

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

No value given for one or more required parameters. 

/kategori.asp, line 11
```

rad 11 är sql-frågan ovan. vad betyder felmeddelandet egentligen? jag fattar inte innebörden av det..

msdn nästa.. ;)

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

## #20 — @nders, 2001-08-17T09:11Z

hur ser hela databastjofräset ut?

från koppling, till öppning av recordset, exekvering av sql-fråga...

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/11176-krånglig-kategorisering  
Nästa sida: https://www.webforum.nu/amne/asp/11176-krånglig-kategorisering/page2.md
