webForumDet fria alternativet

räkna ut ett snitt fast med villkor!

Databaser & SQL

6 svar · 380 visningar · startad av leox

Medlem sedan mars 200550 inlägg
Frågan#1

Hej WF.

Jag håller på att skapa ett litet system för olika golfresultat.
Nu har jag stött på ett stort problem.

Exempel:

Jag vill räkna ut det aktuella snittet.
Totalt ska 4 varv spelas, 2 på lördag och 2 på söndag.

Dvs: summa / 4

I tabellen i DB:n (access db) finns det fyra kolumner, en för varje varv.

Hur skapar man en funktion som räknar ut hur många kolumner som är större än 0?

Om man nu uppdaterar hemsidan efter lördagen så kan ju funktionen inte dela den summan på 4 utan måste ju då på något sätt ta reda på hur många av kolumnerna som har ett värde större än 0 och dela med detta värde.

Tack på förhand

Medlem sedan juni 2004533 inlägg
#2

När du talar om kolumner, menar du då kolumner eller fält? Om kolumnen ska vara större än noll, ska då något eller alla fält i kolumnen vara större än noll, eller menar du att fältet ska vara större än noll?

Medlem sedan mars 200550 inlägg
#3

Jag menar självklart fält, ledsen för den dåliga förklaringen.

Exempel:

[Varv 1], [Varv 2], [Varv 3], [Varv 4], [Summa] ,[Snitt]
     23      25      0        0           48          24

Så vill jag att det ska bli men då kan jag ju inte ta Summa / 4
utan jag måste ju ta Summa / Antal värden större än 0 dvs 2 i detta fall.

Hoppas du förstod mig bättre nu ;-)

Medlem sedan juni 2004533 inlägg
#4

Med den konstruktionen så måste du helt enkelt kolla varje värde för att ta reda på hur många som inte är noll.

Ifall du hade byggt databasen så att du lagrade ett resultat i varje post så hade du kunnat använda den färdiga funktionen för genomsnitt.

Medlem sedan mars 200550 inlägg
#5

Hej igen, tack för att du tar dig tid.

Vilken färdiga funktion? vet inget som en sådan, kan du visa ett exempel?

Tack återigen!

Medlem sedan juni 2004533 inlägg
#6

Här är ett exempel som hämtar antal poster och genomsnittet för en viss spelare:

select count(*) as Antal, avg(Varv) as Snitt from Resultat where Spelare=42
Medlem sedan dec. 200012 464 inlägg
#7

Flyttas från ASP

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)