---
title: "Räkna procent ACCESS ASP"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/190221-räkna-procent-access-asp/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "climber"
published: "2012-08-09T17:27:06.000Z"
updated: "2012-08-21T00:14:00.000Z"
replies: 26
views: 3130
page: 2
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/190221-räkna-procent-access-asp"
---

# Räkna procent ACCESS ASP

_Sida 2 av 2._

## #21 — civilpolisen, 2012-08-16T22:25Z

Detta är roligt!
Bara så vi pratar om samma sak, låt oss reda ut begreppen:
Bangolf = minigolf?
Bana = hål?

OK, spelar ingen roll, förutom att man har inte PAR på minigolf... (vad jag vet i alla fall!!)

\*\*\*
Jag tror att Vogatini menar nåt liknande som detta, men jag kan ha fel. Nu förstår jag att bygga om din databas kanske inte är prioritet nummer ett i skrivande stund, men om du gör en vettig struktur blir sajten MYCKET roligare och intressantare.

Som ny på ASP och SQL har du en hel del att sätta dig in i. Särskilt med tanke på att ditt projekt har rätt usel design (upplägg) från början. Jag menar att din vän tänkte ett steg längre än man ofta gör när han väljer att spara ID-nummer som text... Det är ju ingen förmildrande omständighet, så att säga!

Egentligen skulle du stänga hela hemsidan och göra om allt det där. Jag är benägen att lägga min röst på att du ska bygga om hela sajten och databasen före jul, i alla fall.

Annars får du dra med den där skiten i tidernas evighet och det är ju ÄNNU jobbigare än att ta sig tid att skriva om projektet.

\*\*\*
Hur som haver:

\[users\]
intID -- räknare
strName

\[bana / lane / hole\] -- välj en av dom
intID -- räknare
strText
intPAR -- om det är aktuellt

\[game\] -- spelomgång
intID
dteCreated
intUserID

\[score\]
intID
dteCreated
intGameID
intBanaID

\*\*\*
Nu lade jag till en ytterligare tabell, men du kan få grymt rolig statistik baserat på detta upplägget. Dessutom, du kan med minimal, eller ingen för att vara mer exakt, ansträngning få en superkul hemsida!

Du kan få månadens snabbaste spel, senaste 30 dagar, årets bästa + snabbaste omgång med mera.

Jag tänker mig att många av dina klubbkompisar har smarta telefoner och laddar in resultatet allt efter hålen de avverkar.

\*\*\*
Det är viktigt att datum verkligen är datum och inte textfält som du lägger in datum i... 

Så här ska det vara: (klassisk ASP + SQL)
text = enkelfjump
datum = brädgård
siffror + boolean (sant/falskt) = inget

SQL = SELECT \* WHERE strName = 'Hedenhös' AND dteCreated = #2012-08-17# AND intUserID = 23 AND bolView = TRUE

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

## #22 — voigtann1, 2012-08-17T08:09Z

Lite offtopic: 
@civilpolisen ett id kan vara en GUID och det är ju inte ett tal och det är unikt

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

## #23 — climber, 2012-08-17T12:05Z

@civilpolisen

Bangolf = Minigolf check
Bana = Hål check

Att bygga om hela sidan är inte aktuellt för tillfället eftersom föreningen diskuterar om dom ska bygga en wordpress sida istället och då får man fundera på om man ska försöka återskapa detta system i php istället.
Det är därför i nuläget enklast att bara försöka hålla detta system flytande.

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

## #24 — climber, 2012-08-18T17:30Z

Om jag vill räkna ihop alla AMT1-AMT18 där värdet är 1, kan man då använda sig av INNER JOIN eller GROUP BY eller hur beter man sig?
Har fortfarande lite svårt att greppa detta  :(

AMT1-AMT18 ligger i tabellen tbl_res.

Har försökt på detta sätt utan att lyckas: (OBS: Har kortat ner det till AMT1-AMT4 i exemplet)

```
<%
   SET EttorB1 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB1 FROM tbl_res WHERE AMT1=1 AND PlayerId='"& strpID &"'")
   SET EttorB2 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB2 FROM tbl_res WHERE AMT2=1 AND PlayerId='"& strpID &"'")
   SET EttorB3 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB3 FROM tbl_res WHERE AMT3=1 AND PlayerId='"& strpID &"'")
   SET EttorB4 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB4 FROM tbl_res WHERE AMT4=1 AND PlayerId='"& strpID &"'")
   
   SET TotEttor = Conn.Execute("SELECT SUM(AntalEttorB1+AntalEttorB2+AntalEttorB3+AntalEttorB4) AS Ettor %>
<%= TotEttor("Ettor") %>
```

och så här

```
<%
   SET EttorB1 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB1 FROM tbl_res WHERE AMT1=1 AND PlayerId='"& strpID &"'")
   SET EttorB2 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB2 FROM tbl_res WHERE AMT2=1 AND PlayerId='"& strpID &"'")
   SET EttorB3 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB3 FROM tbl_res WHERE AMT3=1 AND PlayerId='"& strpID &"'")
   SET EttorB4 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB4 FROM tbl_res WHERE AMT4=1 AND PlayerId='"& strpID &"'")
   
   SET TotEttor = Conn.Execute("SELECT SUM(AntalEttorB1+AntalEttorB2+AntalEttorB3+AntalEttorB4) AS Ettor FROM tbl_res WHERE PlayerId='"& strpID &"'")
%>
<%= TotEttor("Ettor") %>
```

Har inte riktigt förstått hur INNER JOIN och GROUP BY är tänkt att fungera så det är lite svårt att prova då.

När det gäller INNER JOIN så tror jag mig ha förstått att det gäller när man vill lägga ihop kolumner från olika tabeller och isf är väl det fel metod?

Jag kanske är helt åt skogen fel ute när det gäller detta  :p

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

## #25 — voigtann1, 2012-08-19T07:45Z

> **[climber skrev:](https://www.webforum.nu/p/1553466)**
>
> Om jag vill räkna ihop alla AMT1-AMT18 där värdet är 1, kan man då använda sig av INNER JOIN eller GROUP BY eller hur beter man sig?
> Har fortfarande lite svårt att greppa detta  :(
>
> AMT1-AMT18 ligger i tabellen tbl_res.
>
> Har försökt på detta sätt utan att lyckas: (OBS: Har kortat ner det till AMT1-AMT4 i exemplet)
>
>
> ```
> <%
>    SET EttorB1 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB1 FROM tbl_res WHERE AMT1=1 AND PlayerId='"& strpID &"'")
>    SET EttorB2 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB2 FROM tbl_res WHERE AMT2=1 AND PlayerId='"& strpID &"'")
>    SET EttorB3 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB3 FROM tbl_res WHERE AMT3=1 AND PlayerId='"& strpID &"'")
>    SET EttorB4 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB4 FROM tbl_res WHERE AMT4=1 AND PlayerId='"& strpID &"'")
>    
>    SET TotEttor = Conn.Execute("SELECT SUM(AntalEttorB1+AntalEttorB2+AntalEttorB3+AntalEttorB4) AS Ettor %>
> <%= TotEttor("Ettor") %>
> ```
>
>
>
> och så här
>
>
> ```
> <%
>    SET EttorB1 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB1 FROM tbl_res WHERE AMT1=1 AND PlayerId='"& strpID &"'")
>    SET EttorB2 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB2 FROM tbl_res WHERE AMT2=1 AND PlayerId='"& strpID &"'")
>    SET EttorB3 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB3 FROM tbl_res WHERE AMT3=1 AND PlayerId='"& strpID &"'")
>    SET EttorB4 = Conn.Execute("SELECT COUNT(*) AS AntalEttorB4 FROM tbl_res WHERE AMT4=1 AND PlayerId='"& strpID &"'")
>    
>    SET TotEttor = Conn.Execute("SELECT SUM(AntalEttorB1+AntalEttorB2+AntalEttorB3+AntalEttorB4) AS Ettor FROM tbl_res WHERE PlayerId='"& strpID &"'")
> %>
> <%= TotEttor("Ettor") %>
> ```
>
>
>
> Har inte riktigt förstått hur INNER JOIN och GROUP BY är tänkt att fungera så det är lite svårt att prova då.
>
> När det gäller INNER JOIN så tror jag mig ha förstått att det gäller när man vill lägga ihop kolumner från olika tabeller och isf är väl det fel metod?
>
> Jag kanske är helt åt skogen fel ute när det gäller detta  :p

INNER JOIN kan hjälpa, men tror inte koden kommer bli mindre, men du skall inte jobba med ett recordset till(TotEttor) du har ju redan de recordset du har, det är bara att räkna ihop dom. Om du nu måste göra så som du har gjort varför inte då skapa en funktion som gör allt jobb till dig, är ju inte så kul att skriva samma SQL fråga om och om igen:

```
<%
Function GetOnce(course, playerId)
	GetOnce = Conn.Execute("SELECT COUNT(*) FROM tbl_res WHERE AMT" & course & "=1 AND PlayerId='"& playerId &"'")(0)
End Function

Dim TotalOnce 

TotalOnce = GetOnce(1, strpID) + GetOnce(2, strpID) + GetOnce(3, strpID) + GetOnce(4, strpID)

Response.Write TotalOnce

%>
```

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

## #26 — climber, 2012-08-19T19:24Z

Tack voigtann1!

Det gjorde susen :)

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

## #27 — leito, 2012-08-21T00:14Z

Tack voigtann1!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/190221-räkna-procent-access-asp/page2  
Föregående sida: https://www.webforum.nu/amne/asp/190221-räkna-procent-access-asp.md
