webForumDet fria alternativet

Avancerade Selec SUM's, snälla hjälp

ASP

8 svar · 274 visningar · startad av Frexuz

Medlem sedan maj 2003138 inlägg
Frågan#1

Hej. Det är såhär att på sidan "wars" på min klan-sida har jag statistik som tex räknar ut % vunna matcher. Men det är 4 olika saker att räkna ut.
----------------------------------------------------------
Första grejen: (Räkna ut antal banor man spelat)

rs("score1") - rs("score2") , är det som innehåller antal vunna maps

det kan se ut såhär:

3-0
2-0
1-2
1-0
0-2

osv

alltså recordsetet KAN innehålla en 0 (nolla)
----------------------------------------------------------
Andra grejen: (Räkna ut Poäng per match)

antal matcher kan man räkna ut genom COUNT alla ID..

räkna ut poängen:

rs("total1") - rs("total2")

kan se ut:

6-2
0-3
12-4

osv

alltså KAN oxo innehålla en 0 (nolla)

sen när man räknat ut matcher och antal poäng så måste man ju dela värdena...

antal poäng / antal matcher
----------------------------------------------------------
Tredje grejen: (räkna ut poäng per bana)

samma som ovan fasst dela värdet med antal banor man spelat (första grejen som räknades ut)

----------------------------------------------------------

tack för mig.. hoppas någon orkar göra detta

Medlem sedan juni 20003 076 inlägg
#2

vad använder du för databas och hur ser tabellerna ut?

Medlem sedan maj 2003138 inlägg
#3

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/sheep.mdb")

Set Antal = Connect.Execute("SELECT COUNT(id) AS antal FROM wars")

Response.Write Antal("antal")
%>

den kod e den jag har nu för att räkna ut antal matcher
---------------------------------------------------------------
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/sheep.mdb")

Set outcome = Connect.Execute("SELECT sum(total1) AS outcome FROM wars")

Response.write "<font face='Verdana' size='1' color='#FFFFFF'>" & outcome("outcome") & "</font>"
%>

och denna för att räkna ut antal poäng
-------------------------------------------------------------

vill räkna ut antal poäng per match

jag vill oxo räkna ut antal poäng per bana

för att räkna ut antal banor som spelats måste man plussa ihop ALLA rs("total1") och rs("total2")

detta räcker väl att veta?
----------------

använder access

Medlem sedan mars 20023 561 inlägg
#4

OT: Glöm inte att stänga dina kopplingar. ;)

Medlem sedan juni 20003 076 inlägg
#5

du kan börja med att slå ihop de två översta, sen är jag fortfarande förvirrad över vad som är vad!
är total1 vunna banor och total2 förlorade banor?
är det så blir väl första sum fel då du bara skriver ut antal vunna banor eller är de det du vill?

Set Antal = Connect.Execute("SELECT COUNT(id) AS antal, sum(total1) as outcome FROM wars")

tabellen ser ut så här eller?

wars
-----------------------------------
id, total1, total2, score1, score2

Medlem sedan maj 2003138 inlägg
#6

ja du har typ rätt.. kan förklara en gång till
--------------------------------------------------------

varje ID är EN match

varje match kan ha 1-3 banor spelade

banor = rs(score1) och rs(score2)
poäng = rs(total1) och rs(total2)

om jag skriver ut en rad som tex ser ut såhär

ID 22 .. 2-0 (7-3)

id 22 är id för den matchen
2-0 betyder att vi vann 2 banor
7-3 betyder att vi tog 7 poäng, motståndarna tog 3 (sammanlagt på 2 banor)

OM jag BARA hade haft denna matchen i databasen skulle statistiken se ut såhär

1 match spelad
2 banor spelade

7 poäng per match (7 dividerat med 1)
3.5 poäng per bana (7 dividerat med 2)

alltså MOTSTÅNDARNAS poäng är egentligen oviktig ( rs(total2) )
------------------------------------------------------------
fattar ni nu? :(

Medlem sedan maj 2003138 inlägg
#7

löste allt såhär:

antal banor:
-------------
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/sheep.mdb")

Set outcome = Connect.Execute("SELECT sum(score1) + sum(score2) AS outcome FROM wars")

Response.write "<font face='Verdana' size='1' color='#FFFFFF'>" & outcome("outcome") & "</font>"
%>

poäng / map
--------------
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/sheep.mdb")

Set outcome = Connect.Execute("Select SUM(total1) / COUNT(id) AS outcome FROM wars")

Response.write "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FFFFFF'>" & round(outcome("outcome"),1) & "</font>"
%>

poäng / bana
--------------
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/sheep.mdb")

Set outcome = Connect.Execute("Select SUM(total1) / (sum(score1) + sum(score2)) AS outcome FROM wars")

Response.write "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FFFFFF'>" & round(outcome("outcome"),1) & "</font>"
%>

Medlem sedan maj 2003138 inlägg
#8

=)

Medlem sedan juni 20003 076 inlägg
#9

bra att du fick till det! litet tips bara, använd bara en connection-öppning! :)

<% 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/sheep.mdb") 

Set outcome = Connect.Execute("SELECT sum(score1) + sum(score2) AS outcome FROM wars") 

Response.write "<font face='Verdana' size='1' color='#FFFFFF'>" & outcome("outcome") & "</font>" 
Set outcome = nothing
'----------------------------------------

Set outcome = Connect.Execute("Select SUM(total1) / COUNT(id) AS outcome FROM wars") 

Response.write "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FFFFFF'>" & round(outcome("outcome"),1) & "</font>" 
Set outcome = nothing
'---------------------------------------

Set outcome = Connect.Execute("Select SUM(total1) / (sum(score1) + sum(score2)) AS outcome FROM wars") 

Response.write "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FFFFFF'>" & round(outcome("outcome"),1) & "</font>" 
Set outcome = nothing
Set Connect = nothing
%>
372 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
249 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)