---
title: "MySQL: SUM() på en \"temporär (AS)\" kolumn går ej?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/161466-mysql-sum-på-en-temporär-as-kolumn-går-ej"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "oGGo"
published: "2007-06-13T13:32:30.000Z"
updated: "2007-06-15T09:00:43.000Z"
replies: 4
views: 504
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/161466-mysql-sum-på-en-temporär-as-kolumn-går-ej"
---

# MySQL: SUM() på en "temporär (AS)" kolumn går ej?

## #1 — oGGo, 2007-06-13T13:32Z

Tjena!
Försöker att köra SUM() på en kolumn jag precis skapat via AS men får då ett felmeddelande som lyder...

> **MySQL skrev:**
>
> Unknown column 'nummer' in 'field list'

Hur skall man gå till väga?

```
SELECT Forumthreads.*,
  (SELECT Count(*) FROM Forumposts WHERE Threadid = Forumposts.Postthreadid) AS nummer,
  SUM(nummer) AS AntalPosts
FROM Forumthreads
GROUP BY Threadforumid
```

Databasdesignen ser ut som följer:

```
[U][B]Forumthreads[/B][/U]
threadid, threadsubject, threadhits, threadsticky, threadforumid, threadlocked

[U][B]Forumposts[/B][/U]
postid, postthreadid, postdate, postlastedit, postip, postcontent, postsubject, postuserid
```

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

## #2 — oGGo, 2007-06-13T14:14Z

Okej, jag löste det problemet men nu dök ett annat upp..

```
[B]Lösning[/B]
SUM(nummer) AS AntalPosts
ersattes med..
(SELECT SUM(nummer) FROM Forumthreads WHERE Threadforumid = 5 AND Threadcityid = 2) AS AntalPosts
```

Då dyker ett annat problem upp.
När jag summerar så tar den värdet som finns i kolumnen 'nummer' och adderar med sig själv så många gånger som det finns rader i tabellen. (9 rader  \* värdet i nummer)
Vad jag vill åstadkomma är ju att den tar det totala värdet från alla rader i 'nummer'.

```
threadid, threadsubject, threadhits, threadsticky, threadforumid, threadlocked, threadcityid, nummer, AntalPosts

29,       'Tjena!',      109,        0,            5,             0,             2,            7,      63
34,       'Jooooorå',    17,         1,            5,             0,             2,            3,      27
35,       'Mjo',         21,         1,            5,             0,             2,            1,      9
36,       'aaa..',       46,         0,            5,             0,             2,            4,      36
37,       'ooo..',       21,         1,            5,             1,             2,            1,      9
38,       'assasda',     6,          0,            5,             0,             2,            2,      18
40,       'da',          1,          0,            5,             0,             2,            0,      0
42,       'kek..',       2,          0,            5,             0,             2,            0,      0
43,       'Hoppla',      4,          0,            5,             0,             2,            1,      9
```

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

## #3 — Fredde Mannen, 2007-06-13T14:31Z

Testa att bara köra denna del av sql-satsen i ex. phpmyadmin eller annat hjälpmedel

```
SELECT nummer FROM Forumthreads WHERE Threadforumid = 5 AND Threadcityid = 2
```

om den returnerar 9 av varje nummer, så bygg om den tills den returnerar rätt antal.

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

## #4 — oGGo, 2007-06-14T09:59Z

> **Fredde Mannen skrev:**
>
> Testa att bara köra denna del av sql-satsen i ex. phpmyadmin eller annat hjälpmedel
>
>
> ```
> SELECT nummer FROM Forumthreads WHERE Threadforumid = 5 AND Threadcityid = 2
> ```
>
> 
> om den returnerar 9 av varje nummer, så bygg om den tills den returnerar rätt antal.

Tack, men det blev lite fel där..
Vad jag vill åstadkomma är alltså summan av nummer dvs. 28.
Det spelar ingen roll att det läggs på varje thread då denna SQL-sats skall bakas in i en mer komplex en och köras med en LIMIT 0,1 senare.

Kort och gott vill jag att summan av kolumnen 'nummer' (28) skall hamna på varje rad 'AntalPosts'.

/oGGo

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

## #5 — oGGo, 2007-06-15T09:00Z

Löste det själv nu, gjorde om hela sql frågan till en INNER JOIN version istället.

Fullständig lösning..

```
"SELECT Forums.*, "&_
			"(SELECT Count(*) FROM Forumthreads WHERE Threadforumid = Forums.Forumid AND Threadcityid = 2) AS forumthreads, "&_
			
			"(SELECT Postdate FROM Forumposts "&_
				"INNER JOIN Forumthreads ON Forumposts.Postthreadid = Forumthreads.Threadid "&_
				"WHERE Threadforumid = Forums.Forumid AND Forumthreads.Threadcityid = 2 "&_
				"ORDER BY Postid DESC LIMIT 0,1) AS datum, "&_

			"(SELECT Postuserid FROM Forumposts "&_
				"INNER JOIN Forumthreads ON Forumposts.Postthreadid = Forumthreads.Threadid "&_
				"WHERE Threadforumid = Forums.Forumid AND Forumthreads.Threadcityid = 2 "&_
				"ORDER BY Postid DESC LIMIT 0,1) AS userid, "&_
			
			"(SELECT Count(*) FROM Forumposts "&_
				"INNER JOIN Forumthreads ON Forumposts.Postthreadid = Forumthreads.Threadid "&_
				"WHERE Forumthreads.Threadforumid = Forums.Forumid AND Forumthreads.Threadcityid = 2) AS forumposts "&_
			
			"FROM Forums "&_
			"ORDER BY Forumid ASC"
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/161466-mysql-sum-på-en-temporär-as-kolumn-går-ej
