---
title: "Giltiga värden"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/150934-giltiga-värden"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "pulse"
published: "2006-09-05T12:25:49.000Z"
updated: "2006-09-06T21:03:37.000Z"
replies: 1
views: 280
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/150934-giltiga-värden"
---

# Giltiga värden

## #1 — pulse, 2006-09-05T12:25Z

Hej, har ett till problem som jag hoppas få hjälp med. 

\--tabell 1 innehåller giltiga värden för varje kategori

```
kategori	giltigt
10		2
10		3
15		X
15		4
16		X
```

\--tabell 2 är populationen och ser ut såhär

```
kategori	värde
10		2 --giltigt
10		5 --ogiltigt
15		X --X
15		4 --giltigt
15		5 --ogiltigt
44		4 --ogiltigt (både kategorin och värdet)
```

Jag vill söka igenom populationen och kontrollera om värdet jag får är giltigt i den kategorin. Är det så vill jag få ett resultat som ser ut såhär

```
Kategori	1 - 9	X	Ogiltiga
10		1	0	1
15		1	1	1
Ogiltig		0	0	1 --44 hamnar här och alla andra som vars kategori inte stämmer med tabell1
```

Nån som kan hjälpa?

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

## #2 — pulse, 2006-09-06T21:03Z

Har kommit så långt att den räknar ut 1 - 9 och X rätt. Men när jag försöker räkna ut "Ogiltiga" värden blir det fel. 

```
select g.cat,
sum(case when g.val = t.val and g.val not in ('X', 'x') then 1 else null end) as '1 - 9',
sum(case when g.val = t.val and g.val not in ('1', '2', '3', '4', '5', '6', '7', '8', '9') then 1 else null end) as 'X',
sum(case when g.val != t.val then 1 else null end) as 'Ogiltig'
from grupp g join t1 t on g.cat = t.cat
group by g.cat
```

Mina testtabeller ser ut såhär:

Tabell1 (giltiga värden)

```
cat	val
1	1
1	2
```

Tabell2 (population)

```
cat	val
1	1
1	a
```

Kör jag detta får jag

```
cat	1-9	X	Ogiltig
1	1	null	3
```

Alltså 3 på ogiltig när det borde varit 1. Jag tror att felet beror på att "join" jämför mina värden flera gånger mot alla ogiltiga värden i tabell1 men hur får man bort det?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/150934-giltiga-värden
