03. september 2006 - 22:13Der er
23 kommentarer og 1 løsning
Beregn forskel fra første record til sidste
Når jeg udskriver en masse records fra min database mellem en given dato, vil jeg gerne have forskellen mellem første og sidste record.. hvordan gør jeg det
Min kolonne i databasen er af tal.
eks. fra min DB
ID ... TAL 1 10 2 23 3 24 4 34 5 35
Så skal altså have udreget hvor meget forskel der er imellem 10 og 35.
Er det altid i stigende rækkefølge (dvs. det altid er forskellen mellem det mindste tal og det største)? Hvis det er kan du bare sige SELECT MAX(tal)-MIN(tal) AS diff FROM ...
Mit "problem" kan være at tallene nødvendigvis ikke er stigende eller faldende.. Så resultatet skal både kunne være negativt eller positivt.. men prøver mig lige frem
Nej, for så får du jo netop forskellen på det største og det mindste tal.
Det du skal have er forskellen på den første og den sidste, og for at du kan gøre det, er det nødvendigt at du finder de ID numre der repræsenterer den første og sidste række.
Men det WHERE-led skulle jo netop sørge for at få den første post (det mindste id) og den sidste post (det største id) ud. Hvis det ellers havde virket, så ville det at bruge bryst i stedet for id have givet nogle andre poster.
Noget jeg undrer mig lidt over - præcis hvorfor skal du have forskellen på lige den første og den sidste? Det er generelt ikke noget man kan bruge til så meget...
Jeg er ved at lave et slanke-site hvor man indtaster sine kropsmål. Her laver jeg en liste med de forskellige kropsmål, og vil så gerne fortælle brugeren hvad forskellen var fra det første til det sidste.. Således brugeren kan se hvor mange cm han/hun har tabt siden første og sidste record.
Ok nielle..Så har sat den ind som du skrev den,og fejlen lyder: Microsoft JET Database Engine fejl '80040e14' En aggregatfunktion kan ikke bruges i WHERE-delsætningen (id=min(id) Or id=max(id)).
nielle: ok, ser nu sådan her ud: Set rsBrystStart = Conn.Execute("SELECT TOP 1 * FROM maal ORDER BY id ASC") Set rsBrystSlut = Conn.Execute("SELECT TOP 1 * FROM maal ORDER BY id ASC")
<% Set rsStart = Conn.Execute("SELECT TOP 1 * FROM maal where dato >= #" & fraDatoFormated & "# and dato <= #" & tilDatoFormated & "# ORDER BY dato desc") Set rsSlut = Conn.Execute("SELECT TOP 1 * FROM maal where dato >= #" & fraDatoFormated & "# and dato <= #" & tilDatoFormated & "# ORDER BY dato ASC")
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.