Avatar billede mjen000 Nybegynder
30. september 2003 - 14:58 Der er 14 kommentarer og
1 løsning

to nyeste poster i en tabel af hver slags

Hej

Jeg har en tabel med aflæsninger af målere hvor jeg gerne vil have valgt de to nyeste måleraflæsninger for hver vogn. Tabellen ser således ud i princippet.

Vogn  Dato        Måler
233    1-8-2003    324234
234    1-8-2003    378234
235    1-8-2003    328794
233    4-8-2003    324234
233    8-8-2003    324279
234    8-8-2003    327134
235    8-8-2003    324994
235    9-8-2003    334334

Jeg kan ikke lige gennemskue hvordan det kan gøres - hjælp.

På forhånd tak
Morten Jensen
Avatar billede bobbedude Nybegynder
30. september 2003 - 15:00 #1
Select TOP 2 from TABEL ORDER BY DATO
Avatar billede netro Nybegynder
30. september 2003 - 15:10 #2
Er der et vilkårligt antal vogne?
Avatar billede netro Nybegynder
30. september 2003 - 15:35 #3
Og hvilken database er der tale om?
Avatar billede netro Nybegynder
01. oktober 2003 - 02:43 #4
Ja, så er det jo svært at komme videre...
Avatar billede mjen000 Nybegynder
02. oktober 2003 - 22:15 #5
Der er tale om en Access database, og der er tale om et vilkårligt antal vogne.

Det jeg skal bruge er at for hvert vognnummer skal vises de to nyeste aflæsninger. Eksempelvis for vogn 233 vises aflæsningerne fra d. 4/8 og d. 8/8. Håber det giver mening.

Til bobbedude: din metode giver jo kun de to nyeste aflæsninger der er i hele tabellen.

MVH
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 03:48 #6
der er brugt:

* tabel: tblData
* felter:
- vogn, tekst
- dato, data (Kort datoformat, "dd-mm-yyyy")
- maaler (undgå æ, ø, å), tal (hel tal)

afvikles med: dinfil.asp?vogn=VOGN_NUMMER&num=ANTAL_POSTER

-----

<%
option explicit


if (request.querystring("vogn") <> "") and (request.querystring("num") <> "") then

    dim strVogn, strNum
    dim rs, conn, strSQL
    dim i

    strVogn = request.querystring("vogn")
    strNum =  request.querystring("num")

    set rs = Server.CreateObject("ADODB.RecordSet")
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("./db1.mdb")

    strSQL = "Select * from tblData where vogn = " & strvogn & " order by dato desc"
    rs.Open strSQL, Conn
    rs.movefirst

    i = 0

    do While Not rs.EOF
        if i <> cint(strnum) then
            response.write "Vogn: " & rs("vogn") & ", Dato: " & rs("dato") & ", Måler: " & rs("maaler") & "<br>"
            i = i + 1
        end if
        rs.movenext
    Loop

    rs.close
    set rs = nothing
    conn.close
    set conn = nothing

end if
%>
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 04:12 #7
en lidt forbedret udgave med instrukser og validering af værdier:

<%
option explicit

response.write "<font face='tahoma' size='2'>"

if ( (isNumeric(request.querystring("vogn"))) and (request.querystring("vogn") <> "") and (isNumeric(request.querystring("num"))) and (request.querystring("vogn") <> "") ) then

    dim strVogn, strNum
    dim rs, conn, strSQL
    dim i

    strVogn = request.querystring("vogn")
    strNum =  request.querystring("num")

    set rs = Server.CreateObject("ADODB.RecordSet")
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("./db1.mdb")

    strSQL = "Select * from tblData where vogn = " & strvogn & " order by dato desc"
    rs.Open strSQL, Conn
    rs.movefirst

    i = 0

    do While Not rs.EOF
            if i <> (strnum) then
            response.write "Vogn: " & rs("vogn") & ", Dato: " & rs("dato") & ", Måler: " & rs("maaler") & "<br>"
            i = i + 1
            end if
            rs.movenext
    Loop

    rs.close
    set rs = nothing
    conn.close
    set conn = nothing
else
    response.write "Afvikles med: dinfil.asp?vogn=<b>VOGN_NUMMER</b>&num=<b>ANTAL_POSTER</b>,<br>"
    response.write "hvor <b>VOGN_NUMMER</b> og <b>ANTAL_POSTER</b> er tal."

end if

response.write "</font>"
%>
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 14:08 #8
hvis du bruger en form, kan du erstatte "querystring" med "form"..
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 15:11 #9
arbejder lige på en rettelse..
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 15:15 #10
Avatar billede mjen000 Nybegynder
05. oktober 2003 - 16:54 #11
Mange tak for hjælpen. Det er bare chekket.
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 16:55 #12
jeg tror ikke at har fået rettelserne..
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 16:58 #13
<font style="font-family: tahoma; font-size: 12px;">
<div style="border-style: dashed; border-width: 1px;">
&nbsp;<font size="3"><u>Instruktioner:</u></font>
<br><br>
&nbsp;* Afvikles med: index.asp?vogn=<b>VOGN_NUMMER</b>&num=<b>ANTAL_POSTER</b>,<br>
&nbsp;hvor <b>VOGN_NUMMER</b> og <b>ANTAL_POSTER</b> er tal.<br><br>
&nbsp;* Hvis du bruger scriptet i en anden fil end 'index.asp' retter du bare linien til.
<br><br>
&nbsp;* Hvis variablen 'num' bliver sat til et tal under 0 (f.eks. -1) eller et tal<br>
&nbsp;større end vognens max antal records, vises alle records for den valgte vogn.
<br>&nbsp;
</div>
<br><br>

Udtræk fra databasen:
<br><br>

<%

if ( (isNumeric(request.querystring("vogn"))) and (request.querystring("vogn") <> "") and (isNumeric(request.querystring("num"))) and (request.querystring("vogn") <> "") ) then

    dim strVogn, strNum
    dim rs, conn, strSQL


    strVogn = request.querystring("vogn")
    strNum =  request.querystring("num")

    set rs = Server.CreateObject("ADODB.RecordSet")
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("./db1.mdb")
    strSQL = "Select * from tblData where vogn = " & strvogn & " order by dato desc"
    rs.Open strSQL, Conn

    if (not rs.bof) and (not rs.eof) then
        dim i
        i = 0
        rs.movefirst
        do While Not rs.EOF
            if i <> cint(strnum) then
                response.write "Vogn: " & rs("vogn") & ", Dato: " & rs("dato") & ", Måler: " & rs("maaler") & "<br>" & vbcrlf
                i = i + 1
            end if
            rs.movenext
        Loop

        rs.close
        set rs = nothing
        conn.close
        set conn = nothing
    else
        response.write "Informationer om vogn '<b>" & strvogn & "</b>' blev ikke fundet!"  & vbcrlf
    end if
else
    response.write "Der er ikke fortaget noget valg. Se instruktionerne." & vbcrlf
end if
%>
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 17:05 #14
urlen er opdateret: http://frip.dk/thesurfer/e/q/407823/index.asp
du kan download zip-filen der indeholder koden brugt på urlen, enten via urlen, eller:
http://frip.dk/thesurfer/e/q/407823/koden.zip
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 17:06 #15
Takker for points.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester