---
title: "Hjälp med SQL Query"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/54560-hjälp-med-sql-query"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "G8"
published: "2002-09-28T17:32:13.000Z"
updated: "2002-09-28T19:23:38.000Z"
replies: 5
views: 329
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/54560-hjälp-med-sql-query"
---

# Hjälp med SQL Query

## #1 — G8, 2002-09-28T17:32Z

Hej, Jag har lite problem med en SQL query som jag kör (MySQL).

Två tabeller:
KLUBBAR:
ID
Namn
regionid
poang

Regioner:
ID
Namn
Sportid
Antal_registrerade

Jag tar reda på "sport" (ett idnummer) med request.querystring och använder mig av SQL satsen:

```
"SELECT region.id AS regionid, region.namn AS regionnamn, region.antal_registrerade, klubbar.id AS klubbid, klubbar.namn AS klubbnamn, klubb.poang FROM regioner INNER JOIN klubbar ON klubbar.regionid = regioner.id WHERE regioner.sportid="& sport &" ORDER BY regioner.namn ASC "
```

Jag vill ha så att den listar alla olika resultat i Regioner och bara den klubben med högst poäng i varje region. 
det ska alltså se ut nånting såhär:

Region: Ledande klubb: Poäng: Antal Registrerade:
Region1 Klubben FF 14 18
Region2 Klubben IF 26 22
Region3 IFK Klubben 12 16

För tillfället skrivs ALLA klubbarna ut istället.... Nån som ser vad som är fel?

Tacksam för svar

//G8

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

## #2 — LarsG, 2002-09-28T18:02Z

Detta går inte att lösa i mysql med en fråga.

Det bästa är nog att skapa en temporärtabell med två kolumner

regionid och poäng

```
create temporary table t(regionid int, poang int)

insert into t 
select regionid,max(poang) 
from klubbar 
group by regionid

SELECT r.id AS regionid, r.namn AS regionnamn,
             r.antal_registrerade, k.id AS klubbid, 
             k.namn AS klubbnamn, k.poang  
  from klubbar k inner join t 
     on k.regionid = t.regiondid 
   and k.poang = t.poang
 inner join region r
     on t.regiondid = r.id
```

Flyttas från ASP till mysql

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

## #3 — G8, 2002-09-28T18:59Z

Får följande felmeddelande:

Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
tabelllista.asp, line 38, column 17
create temporary table t(regionid int, poang int)
\----------------^

Nån som vet, Lars G? \*hint\* ;)

Tack för hjälpen

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

## #4 — G8, 2002-09-28T19:03Z

förresten, blir inte denna lösningen ganska processorkrävande? Finns det någon enklare lösning kanske?

Mvh

//G8

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

## #5 — LarsG, 2002-09-28T19:07Z

Det är inte ASP-kod. Det är ren SQL.

```
connect.execcute "create temporary table t(regionid int, poang int)"

connect.execute "insert into t " &_
"select regionid,max(poang) " &_
" from klubbar " &_
" group by regionid "

set rs = connect.execute( &_
"SELECT r.id AS regionid, r.namn AS regionnamn, " &_
             "r.antal_registrerade, k.id AS klubbid, " &_
             "k.namn AS klubbnamn, k.poang  " &_
  "from klubbar k inner join t  " &_
     "on k.regionid = t.regiondid " &_
   "and k.poang = t.poang " &_
 "inner join region r " &_
     "on t.regiondid = r.id" &_
```

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

## #6 — G8, 2002-09-28T19:23Z

Hmm, testade att göra ett recordset till som ser ut som följer:

Recordset1:

```
stm = "SELECT regioner.id AS regionid, regioner.namn AS regionnamn, region.antal_klubbar FROM regioner WHERE regioner.sportid="& sport &" ORDER BY regioner.namn asc"
set rs1 = Connection.Execute(stm)
```

Recordset2: (som jag lägger efter do until rs1.eof för att få rätt regionid på varje rad)

```
stm2 = "SELECT klubbar.id AS klubbid, klubbar.namn AS klubbnamn, klubbar.poang FROM klubbar WHERE klubbar.regionid="& rs1("regionid") &" ORDER BY klubbar.poang desc"
set rs2 = Connection.Execute(stm2)
```

Jag vet inte om detta blir tyngre än att skapa en temorär tabell varje gång sidan besöks vilket kan bli ganska ofta. Någon som vet om det är tyngre att köra två recordsets än att skapa en temporär tabell?

Tack för hjälpen så här långt LarsG :)

Mvh

//G8

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/54560-hjälp-med-sql-query
