---
title: "Hämta högsta poängen ur db"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11547-hämta-högsta-poängen-ur-db"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Mz"
published: "2001-09-10T11:48:00.000Z"
updated: "2001-09-10T14:06:00.000Z"
replies: 15
views: 299
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/asp/11547-hämta-högsta-poängen-ur-db"
---

# Hämta högsta poängen ur db

## #1 — Mz, 2001-09-10T11:48Z

Hej.

Jag håller på att skapa en liten tävling till vårt intranät, själva tävlingen består av 10st frågor med olika alternativ, detta fungerar bra, men nu behöver jag plocka ur "vinnaren" eller "vinnarna"... vilket blir problem, vet inte hur jag skall börja...

Ex.

Omgång 1:
Lisa och Kalle vinner på 10p,
Nisse kommer tvåa på 9p.

Omgång 2:
Lasse vinner på 8p, Lisa trea på 7p.

(Det är alltså högst poäng som vinner...)

Hur plockar jag ut vinnarna ur databasen?

Vinnarna från varje "omgång" sparas sedan om i en ny tabell för endast vinnare...

Någon som kan ge mig lite tips? :)

**Redigerat:**
Databasen som innehåller alla tävlande ser ut så här:
ID / Räknare
Name / PM
Points / Text
(om det är till någon nytta. ;) )

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

## #2 — @nders, 2001-09-10T12:00Z

Du måste ha poängfältet som talfält i tabellen om du ska kunna göra vettiga sorteringar (som denna) i tabellen.

Om vi utgår ifrån att fältet Points får typen tal, kan du skriva en SQL-fråga som denna:

```
strSQL = "SELECT * FROM tblTableName WHERE Points IN (SELECT TOP 1 Points FROM tblTableName ORDER BY Points DESC)"
```

Mvh,

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

## #3 — Mz, 2001-09-10T12:06Z

> SELECT TOP 1 Points

Sorterar detta ut alla vinnare om det ex. är 3st som har 10p?

> Du måste ha poängfältet som talfält i tabellen

Hmm, är det nått speciellt man ska tänka på när man sparar och hämtar data från ett talfält? (fnuttar etc.)

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

## #4 — @nders, 2001-09-10T12:14Z

Inga apostrofer runt ett talvärde.

> Sorterar detta ut alla vinnare om det ex. är 3st som har 10p?

Nej, inte just den lilla del som du ryckte ur min SQL-fråga, men hela min fråga gör det, ja.

Mvh,

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

## #5 — Mz, 2001-09-10T12:16Z

hehe, ok sorry ;)

Ska testa, tack för hjälpen! :D

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

## #6 — Mz, 2001-09-10T12:33Z

...fungerar utmärkt! :D

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

## #7 — Mz, 2001-09-10T13:10Z

Hmm.. om jag nu vill slumpa ut en av vinnarna, hur skall jag då gå till väga?

Min kod ser i förenklad form ut så här:

```
	SQL = "SELECT * FROM Users WHERE uPoints IN (SELECT TOP 1 uPoints FROM Users ORDER BY uPoints DESC)"
	Set RecSet = Connect.Execute(SQL)
	
	If RecSet.EOF Then
		Response.Write "Ingen vinnare denna månad..."
	
		RecSet.Close
		Connect.Close
	
	Else
		Do Until RecSet.EOF
			Response.Write " &nbsp; "& RecSet("uPoints") &"p - "& RecSet("uNamn") &"<br>"
		RecSet.MoveNext
		Loop
	
		RecSet.Close
		Connect.Close	
	
	End If
```

Tacksam för all hjälp ;)

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

## #8 — @nders, 2001-09-10T13:26Z

Att slumpa databasposter har varit uppe på tapeten massor med gånger. Pröva att se om du hittar någonting med sökfunktionen uppe till höger.

Mvh,

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

## #9 — Mz, 2001-09-10T13:46Z

När jag försöker räkna antal poster som har högst poäng så får jag ett felmeddelande:

Microsoft JET Database Engine (0x80040E14)
SELECT-uttrycket innehåller ett reserverat ord eller argument som antingen är felstavat eller utelämnat, eller så är skiljetecknen felaktigt använda.
/MZReklam/tevling/admin.asp, line 255

Rad 255:
SQL = "SELECT Count(\*) AS rsPosts WHERE uPoints IN (SELECT TOP 1 uPoints FROM Users)"

Utskriven SQL:
SELECT Count(\*) AS rsPosts WHERE uPoints IN (SELECT TOP 1 uPoints FROM Users)

Några tips?

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

## #10 — @nders, 2001-09-10T13:51Z

Jag skulle gissa på att Users är ett ord som är reserverat. Prova att byta namn på det fältet, alternativt att klamra *\[Users\]* i SQL-frågan.

Mvh,

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

## #11 — Mz, 2001-09-10T13:58Z

Nja, jag har redan testat det, felmeddelandet kvarstår dock.

```
SQL = "SELECT Count(*) AS rsPosts WHERE uPoints IN (SELECT TOP 1 uPoints FROM [Users])"
```

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

## #12 — @nders, 2001-09-10T13:59Z

Sorry. :r

Du har glömt att specificera tabell i din fråga...

```
SQL = "SELECT Count(*) AS rsPosts FROM [Users] WHERE uPoints IN (SELECT TOP 1 uPoints FROM [Users])"
```

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

## #13 — LarsG, 2001-09-10T14:01Z

Users är inte ett reserverat ord.

Du har ingen from med i din första select

```
SQL = "SELECT Count(*) AS rsPosts from users WHERE uPoints IN (SELECT TOP 1 uPoints FROM Users)"
```

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

## #14 — Pace, 2001-09-10T14:01Z

Fy skäms @nders!
Och du ska kalla dig forumledare!!

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

## #15 — LarsG, 2001-09-10T14:06Z

Du bör också ha med en order by när du använder top.

```
SQL = "SELECT Count(*) AS rsPosts from users WHERE uPoints IN (SELECT TOP 1 uPoints FROM Users order by upoints desc)"
```

eller så kan man skriva det mer portabelt

```
SQL = "SELECT Count(*) AS rsPosts from users WHERE uPoints IN (SELECT max(uPoints) FROM Users)"
```

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

## #16 — Mz, 2001-09-10T14:06Z

Aha, nu fungerar det som det är tänkt - slumpat och klart!
Tack allesammans! :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/11547-hämta-högsta-poängen-ur-db
