Det är bättre om du sätter villkor i ditt select-statement.
Om du använder Access kan du använda denna SQL-kod för att enbart få den raden som du vill ha.
select top 1 * from dinTabell
where datum > now()
order by datum
4 svar · 182 visningar · startad av asp
Hej,
Jag vill skriva ut vilken omgång som precis är spelad och då använder jag mig av denna kod:
Do Until rs.EOF
If rs("datum") > Now() Then
intOmgang = CInt(rs("omg"))
End If
rs.MoveNext
Loop
rs.MoveFirst
och för att skriva ut:
Response.Write("Omgång " & intOmgang & " av " & rs("totalomg") & "<br><br>")
Men den skriver hela tiden ut max, tex 4 av 4 eller 5 av 5 osv.
Det är bättre om du sätter villkor i ditt select-statement.
Om du använder Access kan du använda denna SQL-kod för att enbart få den raden som du vill ha.
select top 1 * from dinTabell
where datum > now()
order by datum
Kan du få in den i denna kod?
strSQL = "SELECT s.datum, s.tid, s.hmal, s.bmal, li.liganamn, s.omg, s.hlag, s.blag, li.ligalogo, " &_
"(SELECT lagnamn FROM tblLag WHERE s.hlag = tblLag.lagid) as hemmalag, " & _
"(SELECT lagnamn FROM tblLag WHERE s.blag = tblLag.lagid) as bortalag, " & _
"(SELECT Max(omg) FROM tblSpel WHERE tblSpel.ligaid = " & Request.QueryString("id") & ") as totalomg " &_
"FROM tblLag l, tblSpel s, tblLiga li " &_
"WHERE (l.lagid = s.hlag OR l.lagid = s.blag) " &_
"AND s.ligaid = li.ligaid " &_
"AND li.ligaid = " & Request.QueryString("id") & " " &_
"ORDER BY s.omg ASC, s.datum ASC"
Set Rs = Conn.Execute(strSQL)
Hur skriver jag sedan ut den?
Denna kod borde väl skriva ut pågående omgång?
"(SELECT TOP1 FROM tblSpel WHERE datum > Now() AND tblSpel.ligaid = " & Request.QueryString("id") & ") as nuomg, " &_
och för att skriva ut:
& rs("nuomg")
Har kommit en bit nu. Denna kod räknar ut hur många matcher som inte är spelade än.
"(SELECT COUNT(*) FROM tblSpel WHERE datum < date() AND tblSpel.ligaid = " & Request.QueryString("id") & ") as nuomg, " &_
Men saken är ju den att jag vill räkna ut hur många omgångar som är spelade och inte matcher...