---
title: "Count på olika saker"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/8918-count-på-olika-saker"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "erka"
published: "2001-04-09T05:48:00.000Z"
updated: "2001-04-09T11:09:00.000Z"
replies: 8
views: 243
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/8918-count-på-olika-saker"
---

# Count på olika saker

## #1 — erka, 2001-04-09T05:48Z

Jag har 2 tabeller, en med användarinformation sedan har jag en tabell med 5 olika grenar kopplad till varje person i användar tabellen.

På en sida vill jag nu visa vem som har mest poäng i varje enskild gren. typ så här

kast med liten boll
Pelle : 8 poäng

60 meter
Frida : 10 poäng

osv. genom alla grenar. Hur gör man det egentligen..tacksam för hjälp.

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

## #2 — Vide, 2001-04-09T06:37Z

Då använder du SQL-funtionen Count: <http://www.webavis.nu/webavis/html/artiklar/asp/asp9.shtml> 

Och du har väl kopplat ett idnummer till poängen!?

SQL = "Select Count(points) AS cntPoints from tabell where userid = "& idnummer

Hämta med ditt recordset: rs("cntPoints")

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

## #3 — erka, 2001-04-09T06:52Z

tabellerna ser ut så här

```
USER
-------
UserID
UserName
UserPass
UserNick

STAT
-------
KastMedBoll
60Meter
Langdhopp
UserID
```

Vid varje vinst i någon gren får de 1 poäng om de kom etta. 

PÅ resultat.asp vill jag skriva ut vem som leder kast med liten boll ligan osv tills alla grenar är averkade.

blir det så med din kod..

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

## #4 — Vide, 2001-04-09T06:57Z

Hjärnsläpp, du skall ju använda Max! :e

SQL = "Select UserId, Max(KastMedBoll) AS cntBoll from stats"

och sedan hämtar du bara namnet med UserId som argument i Where-satsen. :)

Skapa en för varje sport.

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

## #5 — erka, 2001-04-09T06:59Z

tackar, hjärnsläpp är förlåtligt efter en helg :e :e

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

## #6 — erka, 2001-04-09T07:06Z

nu har jag

```
<%	
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/mess.mdb")
Connect.Open DSNtemp

SQLStmt = "Select personid, Max(kastmedboll) AS cntBoll from stats"
Set RS = Connect.Execute(SQLStmt)
%>

<%=RS("Cntboll")%>
```

PersonID hette det inte UserID..Jag får meddelandet

```
[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'personid' as part of an aggregate function.
```

Sen undrar jag om det inte finns någe sätt att loopa igenom alla grenar dynamiskt. Som det är nu måste jag ju skriva en sqlsats för varje gren..

jag kanske var lite oklar, vid varje vinst får det +1 i fältet för den grenen de vann...alltså vinner jag i kast med liten boll får jag värdet tidigare för rätt användare i kast med liten boll + 1..

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

## #7 — erka, 2001-04-09T10:10Z

fean! får det inte att fungera....samma skit som förr..

Kan man göra på det sättet jag försökt eller är jag helt ute å cyklar ?

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

## #8 — LarsG, 2001-04-09T10:59Z

Nja, din SQL sats blir nog lite mer komplicerad än så

```
Select username, usernick, 'Kast med boll', kastmedboll 
  from user join stats using (userid)
 where kastmedboll in (select max(kastmedboll)
             from stats)
```

Du kan ju testa ut den här SQLsatsen separat. 

User är inget bra kolumnnamn då det är ett reserverat ord i de flesta SQLdialekterna. Det är inte heller bra att namnet inleds med siffror då man måste specialhantera detta.

Om du vill ha de andra grenarna också, så är det nog enklast att göra en union

```
Select username, usernick, 'Kast med boll', kastmedboll 
  from user join stats using (userid)
 where kastmedboll in (select max(kastmedboll)
             from stats)
union
Select username, usernick, 'Längdhopp', 
langdhopp
  from user join stats using (userid)
 where langdhopp in (select max(langdhopp)
             from stats)
union
Select username, usernick, '60 meter', 
[60meter]
  from user join stats using (userid)
 where [60meter]in (select max([60meter])
             from stats)
```

Det fungerar bra om du samma typ i alla tre kolumnerna.

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

## #9 — erka, 2001-04-09T11:09Z

Tack för hjälpen. jag har nu gjort så här..

```
<%	
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/mess.mdb")
Connect.Open DSNtemp

SQLStmt = "Select MAX("& Request.Querystring("gren") &") AS MaxPoints from stats"
Set RS = Connect.Execute(SQLStmt)
SQLStmt2 ="SELECT personid FROM stats WHERE "& request.querystring("gren") &" =" & RS("maxPoints") & "" 
Set RS2 = Connect.Execute(SQLStmt2)

Response.Write(SQLStmt)
Response.Write(SQLStmt2)
%>
<br><br>

<%=rs2("personid")%><br>
<%=RS("MaxPoints")%>
```

skickar med vilken gren jag vill ha i en querystring och fixar det utifrån där. Men hur gör man nu om man vill ha alla grenar på en och samma sida..
återkommer om inte någon gör det före mig..

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/8918-count-på-olika-saker
