---
title: "Sortera efter SUM..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/165285-sortera-efter-sum"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "oskars"
published: "2007-10-09T12:42:21.000Z"
updated: "2007-10-10T08:37:57.000Z"
replies: 9
views: 645
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/165285-sortera-efter-sum"
---

# Sortera efter SUM...

## #1 — oskars, 2007-10-09T12:42Z

Hejsan,

jag har följande kod:

```
<%
	Set Recset = Server.CreateObject("ADODB.Recordset")
	SQL = "Select * FROM Users WHERE Grad = 1 ORDER BY Namn asc"
	RecSet.Open SQL, Connect, 1, 2
	
	Color = "EEE"
	Do Until RecSet.EOF

		Set Recset2 = Server.CreateObject("ADODB.Recordset")
		SQL2 = "Select SUM(Pris) AS Pris FROM Konto WHERE sID = '"&RecSet("Namn")&"'"
		RecSet2.Open SQL2, Connect, 1, 2
	%>
	<tr style="background-color:#<%=Color%>">							
		<td><%=RecSet("Namn")%></td>
		<td><%=RecSet2("Pris")%></td>
	</tr>
	<%
		
	RecSet.MoveNext
	
	If Color = "EEE" Then	
		Color = "FFF"
	Else
		Color = "EEE"
	End If
	
	Loop

	RecSet.Close
	Set RecSet = Nothing
%>
```

Här sorterar jag ju efter Namn ... men hur gör jag för att sorta efter SUM(Pris)? Jag vill skapa mig en liten topplista...

Tacksam för hjälp =)

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

## #2 — @nders, 2007-10-09T12:55Z

```
... ORDER BY Sum(Pris) DESC
```

?

Du behöver nog skriva om dina sql-frågor till en jätteläcker join, men det ordnar du säkert :)

edit: eftersom jag inte hade något bättre för mig får du något att leka med:

```
SELECT u.Namn, SUM(k.Pris) AS Pris
FROM Users u
INNER JOIN Konto k ON k.sID = u.Namn
WHERE u.Grad = 1
GROUP BY u.Namn
ORDER BY SUM(k.Pris) DESC
```

mvh

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

## #3 — oskars, 2007-10-10T06:39Z

Oj, fräckt! Tack så mycket! Återigen.

Försöker analysera koden.

Om jag förstått det rätt så definierar du Users till en "variabel" som du valt att kalla "u", eller? Och "u" använder man sen som förkortning till typ u.Namn etc?

```
FROM Users u
```

Jag fick det att fungera. Nu återstår att försöka lära sig det här så man kan det själv :)

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

## #4 — @nders, 2007-10-10T06:43Z

> Om jag förstått det rätt så definierar du Users till en "variabel" som du valt att kalla "u", eller? Och "u" använder man sen som förkortning till typ u.Namn etc?

Yes - jag satte bara ett *alias* på tabellen för att få det tydligt men inte onödigt mycket att skriva.

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

## #5 — voigtann1, 2007-10-10T07:22Z

man \_kan\_ skriva "FROM Users AS u" om man vill göra det tydligare men inget måste.

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

## #6 — SPiN, 2007-10-10T07:40Z

Använder man nyckelordet "AS" från början blir det heller inga problem vid eventuell portning till någon annan DBMS, värt att notera.

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

## #7 — LarsG, 2007-10-10T07:45Z

Flyttas från ASP

```
order by sum(k.pris)
```

är inte tillåtet i standard SQL. Använd korrelationsnamnet istället

```
order by pris
```

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

## #8 — @nders, 2007-10-10T07:46Z

LarsG - jag har uppfattningen att det inte alltid fungerar att sortera på korrelationsnamnet - minns jag fel? :)

Det är såklart bättre - om det nu går bra. :)

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

## #9 — LarsG, 2007-10-10T07:57Z

Det fungerar inte i Access. Där kan man använda positionen i select-listan. Det är i och för sig inte heller standard men fungerar så vitt jag vet i alla DBMS. Jag vet dock att flera DBMS inte stöder aggregatfunktioner i order by.

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

## #10 — oskars, 2007-10-10T08:37Z

Jag kör MySQL, om ni undrar :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/165285-sortera-efter-sum
