---
title: "Räkna poster med beroenden på andra tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/176474-räkna-poster-med-beroenden-på-andra-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "SPiN"
published: "2009-01-23T10:57:50.000Z"
updated: "2009-01-23T11:34:59.000Z"
replies: 2
views: 372
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/176474-räkna-poster-med-beroenden-på-andra-tabeller"
---

# Räkna poster med beroenden på andra tabeller

## #1 — SPiN, 2009-01-23T10:57Z

Hej!

Jag har ett antal tabeller;

```
Uppdrag
-------
id      öppen       län         ...

Arbetsgivare
------------
id      namn        ...

Plats
-----
id      län         ...

UppdragFörArbetsgivare
----------------------
uppdrag             arbetsgivare
```

Ett uppdrag hör till precis ett (1) län, men kan tillhöra flera uppdragsgivare. En uppdragsgivare kan ha flera uppdrag.

Nu vill jag räkna upp antalet uppdrag i ett län, som gäller för en specifik arbetsgivare. Jag verkar inte komma runt SQL-frågan, då jag i resultatet enbart får ut antal uppdrag i ett län - oberoende av arbetsgivare.

T.ex:
Förväntat resultat: (exempel)

```
län                 uppdragsRäknare
---                 ---------------
Stockholm           5
Västra Götaland     8
Dalarna             2
...
```

Men jag får istället då ut antalet totala uppdrag i länet: (exempel)

```
län                 uppdragsRäknare
---                 ---------------
Stockholm           45
Västra Götaland     32
Dalarna             9
...
```

Frågan för att räkna alla uppdrag grupperat efter län, oberoende av uppdragsgivare:

```
SELECT p.län, COUNT(u.id) AS uppdragsRäknare
FROM Plats p
    LEFT OUTER JOIN Uppdrag u
        ON p.id=u.län
        AND u.är_öppen=1
GROUP BY p.län
ORDER BY p.län ASC
```

Frågan som jag försöker ställa, men får ett likadant resultat:

```
SELECT p.län, COUNT(u.id) AS uppdragsRäknare
FROM Plats p
    LEFT OUTER JOIN Uppdrag u
        ON p.id=u.län
        AND u.är_öppen=1
    LEFT OUTER JOIN UppdragFörArbetsgivare ufa
        ON ufa.uppdrag=u.id
        AND ufa.arbetsgivare=5
GROUP BY p.län
ORDER BY p.län ASC
```

Har nu försökt med olika typer av joins - men det känns som att jag slår huvudet mot väggen hela tiden då jag får exakt samma resultat... Så jag känner att jag behöver lite hjälp. :)

Tack!

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

## #2 — Peter S, 2009-01-23T11:23Z

```
SELECT p.län, sum(case when ufa.arbetsgivare is not null then 1 else 0 end) AS uppdragsRäknare
FROM Plats p
    LEFT OUTER JOIN Uppdrag u
        ON p.id=u.län
        AND u.är_öppen=1
    LEFT OUTER JOIN UppdragFörArbetsgivare ufa
        ON ufa.uppdrag=u.id
        AND ufa.arbetsgivare=5
GROUP BY p.län
ORDER BY p.län ASC
```

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

## #3 — SPiN, 2009-01-23T11:34Z

Asbra! Tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/176474-räkna-poster-med-beroenden-på-andra-tabeller
