---
title: "Group BY och inne join i samma fråga?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/180689-group-by-och-inne-join-i-samma-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "evilaid"
published: "2009-10-13T11:42:39.000Z"
updated: "2009-10-13T12:34:49.000Z"
replies: 8
views: 403
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/180689-group-by-och-inne-join-i-samma-fråga"
---

# Group BY och inne join i samma fråga?

## #1 — evilaid, 2009-10-13T11:42Z

Hej..

Har fastnat lite och vet inte om jag tänker helt fel men jag har en group sats men behöver koppla frågan till en annan tabell. Går det?

group satsen ser ut så här och fungerar nu..

```
SELECT     hits.Page_ID, COUNT(*) AS antal
FROM         Hits AS hits INNER JOIN
                      pages ON hits.Page_ID = pages.Page_ID
WHERE     (hits.Customer_ID = 10) AND (hits.c_Date BETWEEN '2009-10-12 00:00:00' AND '2009-10-13 23:59:00')
GROUP BY hits.Page_ID
ORDER BY antal DESC
```

ni vill jag koppla kolumnen page_id till en tabell som heter "pages" så jag får fram namnet för varje "page_id" relationen till tabellen "pages" är hits.page_id=pages.id

Provade detta men får bara felet att pages.id inte ingår i den aggregerade funktionen

```
SELECT     hits.Page_ID, COUNT(*) AS antal, pages.ID
FROM         Hits AS hits INNER JOIN
                      pages ON hits.Page_ID = pages.Page_ID
WHERE     (hits.Customer_ID = 10) AND (hits.c_Date BETWEEN '2009-10-12 00:00:00' AND '2009-10-13 23:59:00')
GROUP BY hits.Page_ID
ORDER BY antal DESC
```

tacksam för lite råd?

mvh

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

## #2 — Troxy, 2009-10-13T12:07Z

Du måste gruppera alla kolumner som inte körs genom en aggregatfunktion.
Lägg till pages.ID i GROUP BY så ska det funka fint.

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

## #3 — evilaid, 2009-10-13T12:16Z

Opps

ok nu funkar det... Kan inte säga att jag är riktigt på det klarar hur man ska tänka med group by funktionen men men..

Tack för hjälpen

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

## #4 — nitro2k01, 2009-10-13T12:18Z

Som Troxy säger...
Vad GROUP BY gör är att gruppera ihop flera rader till en. pages.ID kan ju ha flera värden för varje givet värde av hits.Page_ID. Därmed är det en självmotsägelse att SELECTa hits.Page_ID direkt - vilket värde ska databashanteraren välja?
Du kan som Troxy säger pröva att lägga till pages.ID i GROUP BY, alt. SELECTa MIN(pages.ID) eller MAX(pages.ID) och få ut ett av värdena.

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

## #5 — evilaid, 2009-10-13T12:18Z

en tanke bara..

Nu kör jag ju min inner join mot en tabell i samma databas, som det är nu är det en liten nödlösning för igentligen finns all information om sidan i en annna databas. Alltså tabellen "pages" finns i en annan databas... Hade det gått lösa på något sätt... Båda databserrna är Ms sql....

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

## #6 — nitro2k01, 2009-10-13T12:22Z

<http://www.webforum.nu/showthread.php?t=176299>

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

## #7 — evilaid, 2009-10-13T12:25Z

inte riktgit med på 
databas2.dbo.customer c2
on c1.custid = c2.custid

måste man inte ansluta till den andra databasen på något vänster... Har ju annant lösenord osv för att göra kopplingen till den??

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

## #8 — nitro2k01, 2009-10-13T12:28Z

Jag bara googlar så jag har inga kodexempel, men kolla in [sp_addlinkedserver](http://msdn.microsoft.com/en-us/library/ms190479.aspx).

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

## #9 — evilaid, 2009-10-13T12:34Z

Oj... det var mer än jag pallade... Förstod knappt hälften av texten ju.. :)
Var ska man skriva allt det? i Sql frågan eller?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/180689-group-by-och-inne-join-i-samma-fråga
