---
title: "Sortera efter antal"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/61790-sortera-efter-antal"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Asa"
published: "2002-12-10T12:55:41.000Z"
updated: "2002-12-10T14:24:22.000Z"
replies: 5
views: 276
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/61790-sortera-efter-antal"
---

# Sortera efter antal

## #1 — Asa, 2002-12-10T12:55Z

Har denna kod:

```
<table cellspacing=0 cellpadding=8 border=0 width="100%">
  <tr>
    <td valign="top" background="bilder/long-bg.gif" height="30" colspan="2"><b>Flest GB-inlägg i din GB:</b></td>
  </tr>
  <tr>
    <td valign="top">
  <%Set Flest=Conn.Execute("Select Distinct from_id From gastbok Where to_Id=" & Request.QueryString("id"))
  y=1
  x=0
  Do Until Flest.EOF Or x=8

  Set User=Conn.Execute("Select * From users Where userid=" & Flest("from_Id"))
  Set Antal = Conn.Execute("select count(from_id) as antal from gastbok where from_Id=" & User("userId") & " And to_Id=" & Request.QueryString("id"))%>
    <b><%=y%>.</b> <%=User("alias")%> (<%=Antal("antal")%>)<br>
  <%x=x+1
  y=y+1
  Flest.MoveNext
  Loop%>
    </td>
  </tr>
</table>
```

Jag vill nu sortera efter den som har mest postade inlägg så den kommer högst upp. Jag använder MySQL databas.

Och vad är fel med denna?

```
If Cint(Session("userid")) = Cint(Request.QueryString("id")) Then
   Conn.Execute("Update gastbok Set read=1 Where to_Id=" & Request.QueryString("id"))  
End If
```

Felmess: 
Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
\[TCX\]\[MyODBC\]You have an error in your SQL syntax near 'read=1 Where to_Id=1' at line 1

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

## #2 — LarsG, 2002-12-10T13:58Z

```
 Set Antal = Conn.Execute("select count(from_id) as antal from gastbok where from_Id=" & User("userId") & " And to_Id=" & Request.QueryString("id") order by antal desc)%>
```

  

read är ett reserverat ord i SQL så det är bäst att byta namn på den kolumnen.

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

## #3 — Asa, 2002-12-10T14:06Z

Det går ju inte med det du skrev! Jag måste ju sortera vid denna eller?

Set Flest=Conn.Execute("Select .......

Det med namnbyte gjorde susen på andra problemet.

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

## #4 — Asa, 2002-12-10T14:13Z

Men den koden ligger ju i loopen där man bara räknar ihop allt å skriver ut namnen. SKa inte själva order grejjen ligga där man hämtar med denna kod?

```
Set Flest=Conn.Execute("Select Distinct from_id From gastbok Where to_Id=" & Request.QueryString("id"))
```

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

## #5 — LarsG, 2002-12-10T14:18Z

Det räcker med en fråga, du kan också begränsa antalet svar till maximalt 8 direkt i frågan.

```
q = "Select alias,count(*) as antal " & _
" From gastbok inner join users  on from_id = user_id " & _
" Where to_Id=" & Request.QueryString("id") & _
" group by alias order by antal desc limit 8"

Set Flest=Conn.Execute(q)
y=1
Do Until Flest.EOF 
%>
    <b><%=y%>.</b> <%=Flest("alias")%> (<%=Flest("antal")%> )<br>
<%
  y=y+1
  Flest.MoveNext
Loop%>
```

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

## #6 — Asa, 2002-12-10T14:24Z

Tackar! Ska testa det!

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

---

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