---
title: "räkna och sortera"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11779-räkna-och-sortera"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "aleborg"
published: "2001-09-18T13:23:00.000Z"
updated: "2001-09-26T00:03:00.000Z"
replies: 21
views: 434
page: 1
pages: 2
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/asp/11779-räkna-och-sortera"
---

# räkna och sortera

_Sida 1 av 2._

## #1 — aleborg, 2001-09-18T13:23Z

Jag är helt hjärndöd idag!
Jag håller på ett forum där man ska kunna sortera efter antal forum/inlägg

Så här ser koden ut idag:

```
SQL="Select * From DevForum Where ForumBel IS NULL Order By "& Session("sort2")
Set forum=Conn.Execute(SQL)
Do Until forum.EOF
Set number = Conn.Execute("Select COUNT(ForumID) AS cnt FROM [DevForum] WHERE [ForumBel] ="& forum("ForumID") &";")
antal= number("cnt")
```

Session("sort2") innehåller oftast ett kolumnnamn.

Hur ska jag skriva för att sorteringen ska ske via antal?

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

## #2 — aleborg, 2001-09-18T15:07Z

Någon som vet?

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

## #3 — emission, 2001-09-18T17:20Z

Hur ser tabellerna ut? Vilken information vill du ha ut (inte \* väl)? Det går antagligen att göra allt med en SQL-sats.

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

## #4 — aleborg, 2001-09-19T10:48Z

Jo, behöver ha ut allt ifrån tabellerna!
Och tanken är att man ska kunna sortera forum efter antal subforum.

Så här e det uppbyggt:
För forum:

DevForum
\--ForumID
\--ForumName - namn på forumet
\--ForumBel - om detta är tomt så är forumet ett "huvudforum" annars så är det ett subforum och innehåller då ID nummret till det forum det tillhör.

Jag har en sida som ser ut ung. så här:

\-Forum1 -- 3 st
\-Forum2 -- 5 st
\-Forum3 -- 2 st

där sista delen är antal subforum.

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

## #5 — aleborg, 2001-09-20T13:19Z

någon?

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

## #6 — LarsG, 2001-09-20T16:11Z

```
select ForumID,ForumName,ForumBel,count(*) as antal
from devtopics
group by ForumID,ForumName,ForumBel
order by 4 desc
```

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

## #7 — aleborg, 2001-09-21T12:55Z

Hmmm, jag hänger inte riktigt med i din SQL sats nu :(

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

## #8 — LarsG, 2001-09-21T13:30Z

För varje unik kombination av 
ForumID,ForumName,ForumBel
så tar man fram antalet förekomster i tabellen och sorterar resultatet fallande efter detta värde.

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

## #9 — aleborg, 2001-09-21T13:34Z

men "order by 4 desc" ???

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

## #10 — LarsG, 2001-09-21T13:43Z

order by 4 desc

innebär att man sorterar med avseende på fjärde uttrycket i select-listan, dvs count(\*)

Egentligen så skall man kunna skriva

```

order by antal desc
```

men det verkar vara problem att använda den konstruktionen i Access.

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

## #11 — aleborg, 2001-09-21T13:57Z

Använder SQL Server :)

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

## #12 — LarsG, 2001-09-21T14:01Z

Ok, då skall det vara lugnt att använda 

```

order by antal desc
```

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

## #13 — aleborg, 2001-09-21T14:09Z

Problemet är att count måste räkna ut hur många subforum som finns till varje forum dvs hur många finns det som har ForumBel=ForumID.

```
SQL="Select * From DevForum Where ForumBel IS NULL Order By "& Session("sort2")
Set forum=Conn.Execute(SQL)
Do Until forum.EOF
Set number = Conn.Execute("Select COUNT(ForumID) AS cnt FROM [DevForum] WHERE [ForumBel] ="& forum("ForumID") &";")
antal= number("cnt")
```

Den här koden fungerar men man skulle behöva kombinera dom

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

## #14 — LarsG, 2001-09-21T14:16Z

```
sql = "select forumid,count(ForumBel) as cnt from DevForum group by forumid order by cnt desc"

Set forum=Conn.Execute(SQL)
Do Until forum.EOF
antal= forum("cnt")
```

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

## #15 — aleborg, 2001-09-21T14:29Z

Problemet är att jag bara ska visa dom där "ForumBel IS NULL" och sortera dom efter hur många subforum dom har, subforumen finns i samma tabell men har i ForumBel id numret till det forum som dom till hör(ett subforum däremot kan inte innehålla ytterligare subforum)

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

## #16 — LarsG, 2001-09-21T14:51Z

```
select forumbel,count(*) as cnt from devforum
where forumbel is not null group by forumbel order by cnt desc
```

Nu får du inte med de forum som saknar subforum.

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

## #17 — aleborg, 2001-09-21T15:07Z

nu får jag bara fram subforumen :e och dom skulle bara räknas ;)

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

## #18 — aleborg, 2001-09-25T12:43Z

någon som har nån idé hur man kan lösa det??

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

## #19 — emission, 2001-09-25T15:41Z

```
SELECT f1.ForumID,f1.ForumName,COUNT(f2.ForumID) AS cnt FROM devforum f1
LEFT OUTER JOIN devforum f2 ON f1.ForumID=F2.ForumBel
WHERE F1.ForumBel IS NULL
GROUP BY f1.ForumID,f1.ForumName
ORDER BY cnt DESC
```

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

## #20 — aleborg, 2001-09-25T16:06Z

TACK emission, du kungen :e
Hur ska jag göra för att få samma funktion fast räkna efter antal som finns i en annan tabell?

Varje subforum har ett antal inlägg i Devtopics förenade genom att i Devtopics så finns ForumBel som innehar ID numret till det forum det tillhör, idag ser det ut så här:

```
SQL="Select * From DevForum Where ForumBel="& forum("ForumID") &" Order By "& Session("sort2")
Set subba=Conn.Execute(SQL)
Do Until subba.EOF
Set number = Conn.Execute("Select COUNT(TopicID) AS cnt FROM [DevTopics] WHERE [ForumBel] ="& subba("ForumID") &";")
ant= number("cnt")
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/11779-räkna-och-sortera  
Nästa sida: https://www.webforum.nu/amne/asp/11779-räkna-och-sortera/page2.md
