Berekening SQL

Status
Niet open voor verdere reacties.

1Janssen1

Gebruiker
Lid geworden
1 nov 2015
Berichten
6
Hallo alle,

Ik zou deze berekeningen graag in SQL willen plaatsen van de tijd naar het aantal punten (voor het puntenklassement Schaatsen). Kan iemand mij hiermee helpen?

500 meter in 39.78 = 39.780 punten.
5000 meter in 7.12.38 = 432.38 (7 x 60 + 12.38) seconden gedeeld door 10 = 43.238 punten.
1500 meter in 2.01.66 = 121.66 seconden gedeeld door 3 = 40.553 punten.
10000 meter in 15.16.34 = 916.34 seconden gedeeld door 20 = 45.817 punten.
Het puntentotaal is dan 39.780 + 43.238 + 40.553 + 45.817 = 169.388 punten.

Ik denk dat het zo moet (voorbeeld):
SELECT [Kolom-Tijdop500m] / 1 * 1000
FROM [tabel]

SELECT [Kolom-Tijdop5000m]/10 * 1000
FROM [tabel]

Alvast bedankt!
 
Volgens mij moet je de tijd delen door ([Afstand]/500) en het geheel vermenigvuldigen met 24*60*60. Het getal moet je dus terugconverteren naar een dagwaarde
 
Hoi

Dus als ik goed begrijp krijg ik dit als code

SELECT ((minuten * 60 + seconden + hondersten/100))/10 * 1000
FROM [tabel]

Kun je deze berekening trouwens ook zonder SQL maken en gewoon als variabele nemen bij een nieuwe kolom die je dan maakt?

Ik heb mijn tabellen trouwens af.
Zou u naar mijn database kunnen kijken en helpen met welke queries/formulieren/rapporten er hierbij nodig zijn?


Met vriendelijke groet,
 
Kun je de db mailen of op een fileshare zetten?
 
Mail 'm maar naar.
 
Laatst bewerkt:
Ik zou het niet in een query doen (je werkt tenslotte in een Access database) maar met een losse functie die je dan aanroept op een door jou aan te geven moment. Ik heb even een knop gemaakt die de berekening uitvoert, maar dat kan dus ook bij de gebeurtenis <Na bijwerken> van één van de invulvelden.

Code:
Option Compare Database
Option Explicit
Const sDec As String = "."

Code:
Private Sub Knop17_Click()
Dim sTijd As String
    sTijd = Me.minuten & ":" & Me.seconden & "." & Me.honderdsten
    Me.Punten = funPunten(sTijd, Me.Afstand)
End Sub

Code:
Function funPunten(Tijd As String, Afstand As Integer) As Double
Dim Parts As Variant
Dim SecondParts As Variant
Dim Minuut As Integer, MinSec As Integer, Secs As Integer, Duizenden As Integer
Dim dblSub As Double

    Parts = Split(Tijd, ":")
    SecondParts = Split(Parts(UBound(Parts)), sDec)
    Minuut = Parts(LBound(Parts))
    MinSec = Minuut * 60
    Secs = Val(Left(SecondParts(LBound(SecondParts)) & "00", 2))
    Duizenden = Val(Left(SecondParts(UBound(SecondParts)) & "000", 3))
    dblSub = MinSec + Secs + Duizenden / 1000
    funPunten = dblSub / (Afstand / 500)
    
End Function
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan