Avatar billede MrLund Nybegynder
08. juli 2010 - 17:39 Der er 6 kommentarer

Automatisk TAQ generator

Jeg har en database hvor nogle bruger har deres vægt indtastet

Jeg skal have lavet en beregning på hvor meget den pågældende har taget på eller tabt sig.

Dvs. jeg skal finde forskellen fra den første indtastede vægt til den sidste indtastet vægt


jeg har lavet denne, og det fungerer tildels
    Set rsFirst= Conn.Execute("SELECT * FROM m_user_bodymeasurements  WHERE username = '" & session("username") & "' ORDER BY userdate asc LIMIT 1")
    Set rsLast= Conn.Execute("SELECT * FROM m_user_bodymeasurements  WHERE username = '" & session("username") & "' ORDER BY userdate desc LIMIT 1")


problemet er, at man kan risikere at den første eller den sidste kolonne ikke er indtastet med nogen vægt, og derfor er tom.

Jeg skal jo så finde den første og sidste der er indtastet hvor vægten også er indtastet

hvordan gør jeg det?

DATABASEN

ID - USERNAME - WEIGHT - USERDATE
Avatar billede MrLund Nybegynder
08. juli 2010 - 17:40 #1
Beklager forkert overskrift, den fik åbenbart lige smidt titel ind på et gammelt skrevet spørgsmål.
Avatar billede wanze Nybegynder
08. juli 2010 - 17:58 #2
"SELECT * FROM m_user_bodymeasurements 
WHERE username = '" & session("username") & "'
AND weight is NOT NULL
ORDER BY userdate desc LIMIT 1"
Avatar billede keysersoze Guru
08. juli 2010 - 17:59 #3
WHERE username = '" & session("username") & "' AND weight IS NOT NULL
Avatar billede MrLund Nybegynder
08. juli 2010 - 19:34 #4
jeg har lige forsøgt, men selvom jeg har eks 4 rows i min database, hvor weight kun er udfyldt i 3 af dem, så tæller den stadig til 4 :s

med denne SQL

Set rsCount= Conn.Execute("SELECT COUNT(*) AS ialt FROM m_user_bodymeasurements WHERE username = '" & session("username") & "' AND weight IS NOT NULL " )

gør jeg noget galt her?
Avatar billede keysersoze Guru
08. juli 2010 - 19:39 #5
er du sikker på at weight er null og ikke bare en tom string?

weigth <> ''
Avatar billede Slettet bruger
08. juli 2010 - 21:42 #6
hvad så med

set rsFirst = Conn.execute("select * from m_user_bodymeasurements where username='" & session("username") & "' and isnull(weight)=False and not weight='' order by userdate asc limit 1")
set rsLast = Conn.execute("select * from m_user_bodymeasurements where username='" & session("username") & "' and isnull(weight)=False and not weight='' order by userdate desc limit 1")

Du bør jo nok også tjekke at der ikke opstår en .EOF - for at være sikker på at beregningen ikke fejler.

\Dan
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