---
title: "Join, Summa tabell 1 och tabell 2"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/186521-join-summa-tabell-1-och-tabell-2"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Webslave"
published: "2011-03-29T08:01:29.000Z"
updated: "2011-04-04T12:56:44.000Z"
replies: 9
views: 1788
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/186521-join-summa-tabell-1-och-tabell-2"
---

# Join, Summa tabell 1 och tabell 2

## #1 — Webslave, 2011-03-29T08:01Z

Ja... knivig rubrik! Hade lite svårt att formulera en bra sökfråga på detta ämne så jag kunde inte hitta något som stämde överens med det jag ville (även om det säkerligen finns).

Det jag vill göra är följande:
Jag har 2 tabeller (tabell1 och tabell2) som ser ut som följande:
tabell1
Id Datum RegistreradTid Anställd

tabell2
Id Tabell1Id Område Antal

Det jag vill göra är att summera all "RegistreradTid" i tabell1 där "Anställd" är X och alla "Antal" i tabell2 där "Tabell1Id" matchar de som hittas i frågan som ställs mot "tabell1" SAMT endast innehåller "Område" Y

Det jag har problem med i den JOIN jag har knåpat ihop är att den summerar inte de fälten i tabell1 som inte har några matchar på "Område" = Y... om ni förstår vad jag menar.

Är det JOIN som jag bör jobba med eller bör jag köra med någon/några subquerys? Tips och exempel mottages varmt

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

## #2 — Webslave, 2011-04-01T06:43Z

Glömde nämna att jag sitter i Access

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

## #3 — LarsG, 2011-04-01T07:49Z

```
select sum(registreradtid),
       (select sum(antal)
          from tabell2 
         where tabell2.tabell1id = tabell1.id
           and tabell2.område = 'Y')
  from tabell1
 where anställd = 'X'
```

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

## #4 — Webslave, 2011-04-01T11:19Z

Tack för svaret LarsG!

Jag har pillat om det en aning och får det inte riktigt att fungera. Summeringen av x.pUnits blir 0. Så här ser min kod ut nu

```
SELECT SUM(b.pCalculatedTime) as c,SUM(b.pRegisteredTime) as r,
    (SELECT SUM(x.pUnits) AS p 
    FROM BBACEmpPes AS x 
    WHERE x.pBBACId = b.pId 
    AND x.pPeNumId IN (SELECT q.pPeNum FROM BBACPeNums AS q 
        WHERE q.pWorkArea = " & _Area & " AND q.pTimeType = 'A')) AS Units,
    COUNT(b.pId) AS ct 
FROM BBAC AS b 
WHERE b.pCalculatedTime <> 0 AND b.pWorkArea = " & _Area & " 
AND b.pTimeType = 'A' 
AND b.pEmployee = " & emp.EmployeeId & " 
AND b.pYear = " & _Date.Year & " 
AND b.pWeek = " & _Date.WeekNum
```

Har jag knåpat ihop det helt galet?  :)

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

## #5 — LarsG, 2011-04-03T16:07Z

Njae, jag kan inte se något direkt fel. Du får försöka dela upp det i mindre bitar och testa dessa var för sig. T.ex. avd får du för resultat av 

```
select x.pUnits 
  from BBACEmpPes AS x 
 where x.pPeNumId in (select q.pPeNum 
                                from BBACPeNums AS q 
                              where q.pWorkArea = " & _Area & " 
                                 and q.pTimeType = 'A')
```

och om du inte får något resultat av den får du testa subselecten i den frågan separat.

Får du noll eller är resultatet null?

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

## #6 — Webslave, 2011-04-04T05:34Z

Hej igen!

Det blir ett nullvärde.

Jag har testat att dela upp den i bitar och det går bra så det verkar vara 

```
WHERE x.pBBACId = b.pId
```

som medför att den inte hittar. Jag har dubbelkollat och det finns poster som matchar så jag vet inte varför den inte länkar rätt, några idéer?

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

## #7 — LarsG, 2011-04-04T07:12Z

Har dom två kolumnerna samma datatyp? Det kan bli något problem om mabn får en implicit konvertering.

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

## #8 — Webslave, 2011-04-04T07:18Z

Ja de är båda långa heltal

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

## #9 — Webslave, 2011-04-04T12:47Z

Hmm... kan det vara så att det är för att jag kör en SUM före min subquery som gör att det bråkar månne?

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

## #10 — Webslave, 2011-04-04T12:56Z

Löste det genom att byta ut

```
x.pBBACId = b.pId
```

till

```
x.pBBACId IN
    (SELECT pId FROM BBAC
    WHERE pCalculatedTime <> 0
    AND pWorkArea = " & _Area & "
    AND pTimeType = 'A'
    AND pEmployee = " & emp.EmployeeId & "
    AND pYear = " & _Date.Year & "
    AND pWeek = " & _Date.WeekNum & ")
```

Känns långt ifrån optimalt att köra en till subquery på det men finns det något annat sät jag kan få fram alla "b.pId" som matchar i "första frågan"?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/186521-join-summa-tabell-1-och-tabell-2
