Avatar billede lightbrain Nybegynder
18. oktober 2002 - 22:02 Der er 18 kommentarer og
3 løsninger

Find største værdi i kolonne (db)

Hej

Kan du lave en funktion til mig, som finder den støreste værdi i en kolonne?
Avatar billede Søren Bech Morsing Praktikant
18. oktober 2002 - 22:04 #1
SELECT TOP 1 [kolonnenavn] FROM tabel ORDER BY [kolonnenavn] DESC
Avatar billede thomas_regin Nybegynder
18. oktober 2002 - 22:09 #2
SELECT MAX(Mit_felt) from Database

Top 1 vælger kun den øverste row i databasen!

Mvh,

Thomas Regin.
Avatar billede Søren Bech Morsing Praktikant
18. oktober 2002 - 22:16 #3
thomas_regin: korrekt, med dog ud fra min WHERE / ORDER BY
Avatar billede thomas_regin Nybegynder
18. oktober 2002 - 22:18 #4
Man kan jo lige så godt benytte sig af de indbyggede SQL procedurer, når de nu er der! ;)

/thomas
Avatar billede lightbrain Nybegynder
20. oktober 2002 - 21:27 #5
Ok, men så må I lige hjælpe mig lidt.

Jeg skal gøre følgende:
1) Find støresteværdi i tabellen "search", konnonen "url_samle" - værdien er f.eks. "10".
2) Denne værdi skal plusses et til, altså så det bliver "11".
3) Værdien skal derefter være en del af det objekt, som skal indsættes i databasen.

Jeg har prøvet mig lidt frem, men det virker ikke - kan du ikke omskrive koden, så det virker:

Set myConn=Server.CreateObject("ADODB.Connection")
myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))

strSQLMAX = "SELECT MAX(url_samle) from search"
set rs = myConn.execute(strSQLMAX)

strSQL = "INSERT INTO search (url_link, overskrift, url_title, artikeltype, grafik, url_topgruppe, url_hovedgruppe, url_undergruppe, url_description, datopublish, url_datoopret, url_sprog, url_prioritet, link_samle) VALUES ('" & Request.form("link") & "','" & Request.form("titel") & "','" & Request.form("titel") & "', 'artikel_web' ,'" & strIMAGE & "','" & StrSQLMAX + 1 & "', '" & "artikler" & "', '" & Request.form("kategori") & "', '" & Request.form("beskrivelse") & "', '" & Request.form("datoPublikation") & "', '" & Date() & "', '" & Request.form("sprog") & "', '" & "aab" & "', '" & counter & "', '" & counter & "')"
set rs = myConn.execute(strSQL)
myConn.close

Bemærk, at jeg i "strSQL" skriver "StrSQLMAX + 1" - jeg aner ikke om det er korrekt.
Avatar billede thomas_regin Nybegynder
20. oktober 2002 - 21:40 #6
Hejsa,

Du skal ikke skrive StrSQLMAX, men istedet:

rs("url_samle") + 1

Det er jo url_samle som du henter ud af databasen, og det er den du gerne vil ha' lagt én til, ikke?

Jeg kan ikke helt overskue din kode (ej heller din hensigt), men det ved du jo også bedst selv! ;)

Mvh,

Thomas Regin.
Avatar billede lightbrain Nybegynder
20. oktober 2002 - 21:44 #7
Ok, nu har jeg lavet lidt om på koden - hensigten er denne gang bare at udskrive den støreste værdi ( + 1)

strSQLMAX = "SELECT MAX() from search"
set rs = myConn.execute(strSQLMAX)
response.write rs("url_samle") + 1

Men den udskriver intet!?
Avatar billede thomas_regin Nybegynder
20. oktober 2002 - 22:40 #8
Det kan man heller ikke.. Du SKAL specificere et numerisk felt.

strSQL = "Select Max(Age) from myDataBase"
set rs = dbconn.execute(strSQL)

Response.Write "Den ældste på plejehjemmet er " & rs("Age") & " år."

Mvh,

Thomas.
Avatar billede thomas_regin Nybegynder
20. oktober 2002 - 22:52 #9
Så, nu fik jeg lige kørt den igennem hos mig selv, og så fandt jeg ud af hvad det var der manglede.

Din SQL-sætning skal se således ud:

strSQL = "Select Max(url_samle) AS MyUrlSamle from Search"
set rs = dbconn.execute(strSQL)

Response.Write "Højeste værdi er: " & rs("MyUrlSamle")

Det var også noget pjat at feltet skal være numerisk. Det behøver det ikke! Hvis du vælger MAX på et tekst-felt, så vil den sortere alfabetisk istedet!

Undskyld for de fejlagtige informationer tidligere!

Mvh,

Thomas Regin.
Avatar billede lightbrain Nybegynder
21. oktober 2002 - 19:41 #10
Der er et eller andet, som er helt galt. Fordi hvorfor udskriver den ikke "***Slutter***", når nu den udskriver "***Starter***". Hvis jeg kobler linien, hvor sql-komandoen eksekveres, fra, så udskriver den også fint "***Slutter***"... med andre ord, den kører død, når den skal eksekvere sql-komandoen. Hvorfor?

Response.Write "<br>***Starter***<br>"
strSQL = "Select Max(url_samle) AS MyUrlSamle from Search"
set rs = dbconn.execute(strSQL)
Response.Write "<br>***Slutter***<br>"
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 19:57 #11
Har du et felt, der hedder url_samle i din database?

Hvilken felt-type er det?.. Du kan ikke vælge Max() på et "Notat"-felt i Access.

Mvh,

Thomas Regin.
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 19:58 #12
Hov, så vidt jeg kan se, skal du bruge:

set rs = myConn.execute(strSQL) og ikke dbconn!

/thomas
Avatar billede lightbrain Nybegynder
21. oktober 2002 - 20:30 #13
Fejlen er rettet, men en ny er opstået. Hvorfor stopper den før den sidste udskrivning (altså før "Slutter")? Gør jeg det samme galt igen i den sidste sql-eksekveringskommando?

    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))

    strSQL = "Select Max(url_samle) AS MyUrlSamle from Search"
    set rs = myConn.execute(strSQL)

    Response.Write "Højeste værdi er: " & rs("MyUrlSamle")

    strSQL2 = "INSERT INTO search (url_link, overskrift, url_title, hovedpost_samle, url_samle, artikeltype, grafik, url_topgruppe, url_hovedgruppe, url_undergruppe, url_description, datopublish, url_datoopret, url_sprog, url_prioritet, link_samle) VALUES ('" & Request.form("link") & "','" & Request.form("titel") & "','" & Request.form("titel") & "','" & rs("MyUrlSamle") & "','" & rs("MyUrlSamle") & "', 'artikel_web' ,'" & strIMAGE & "','" & " " & "', '" & "artikler" & "', '" & Request.form("kategori") & "', '" & Request.form("beskrivelse") & "', '" & Request.form("datoPublikation") & "', '" & Date() & "', '" & Request.form("sprog") & "', '" & "aab" & "', '" & counter & "', '  ')"
    set rs2 = myConn.execute(strSQL2)
    Response.Write "<br>Slutter"
    myConn.close
Avatar billede lightbrain Nybegynder
21. oktober 2002 - 20:31 #14
... eller er det måske fordi jeg bruger "rs("MyUrlSamle")" inden i "strSQL2" ?
Avatar billede lightbrain Nybegynder
21. oktober 2002 - 21:26 #15
Kobler jeg "strSQL2" fra, så kan den pludselig godt fortsætte (og udskriver)... jeg fatter minus... jeg må hellere tilføje nogle flere points til dette indæg, for det er kun rimeligt, hvis også du knækker denne nød. :-)
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 21:54 #16
Prøv denne istedet.. Der var nogle småting i din strSQL2, som trængte til at blive justeret:

<%
    strSQL = "Select Max(url_samle) AS MyUrlSamle from Search"
    set rs = myConn.execute(strSQL)

    Response.Write "Højeste værdi er: " & rs("MyUrlSamle")

    strSQL2 = "INSERT INTO search (url_link, overskrift, url_title, hovedpost_samle, url_samle, artikeltype, grafik, url_topgruppe, url_hovedgruppe, url_undergruppe, url_description, datopublish, url_datoopret, url_sprog, url_prioritet, link_samle) VALUES ('" & Request.form("link") & "','" & Request.form("titel") & "','" & Request.form("titel") & "','" & rs("MyUrlSamle") & "','" & rs("MyUrlSamle") & "', 'artikel_web' ,'" & strIMAGE & "','', '" & artikler & "', '" & Request.form("kategori") & "', '" & Request.form("beskrivelse") & "', '" & Request.form("datoPublikation") & "', '" & Date() & "', '" & Request.form("sprog") & "', '" & aab & "', '" & counter & "', '')"
    set rs2 = myConn.execute(strSQL2)
    Response.Write "<br>Slutter"
    myConn.close
   
%>

Mvh,

THomas Regin.
Avatar billede lightbrain Nybegynder
21. oktober 2002 - 22:04 #17
Så har jeg også prøvet det, men det gav desværre samme resultat.

    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))

    strSQL = "Select Max(url_samle) AS MyUrlSamle from Search"
    set rs = myConn.execute(strSQL)

    Response.Write "Højeste værdi er: " & rs("MyUrlSamle")
   
    strSQL2 = "INSERT INTO search (url_link, overskrift, url_title, hovedpost_samle, url_samle, artikeltype, grafik, url_topgruppe, url_hovedgruppe, url_undergruppe, url_description, datopublish, url_datoopret, url_sprog, url_prioritet, link_samle) VALUES ('" & Request.form("link") & "','" & Request.form("titel") & "','" & Request.form("titel") & "','" & rs("MyUrlSamle") & "','" & rs("MyUrlSamle") & "', 'artikel_web' ,'" & strIMAGE & "','', '" & artikler & "', '" & Request.form("kategori") & "', '" & Request.form("beskrivelse") & "', '" & Request.form("datoPublikation") & "', '" & Date() & "', '" & Request.form("sprog") & "', '" & aab & "', '" & counter & "', '')"
    set rs2 = myConn.execute(strSQL2)
    Response.Write "<br>Slutter"
    myConn.close
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 22:37 #18
Okay.. Og det virker fint, hvis du fjerner hele strSQL2?

I så faldt, så gør mig den tjeneste, lige efter sin strSQL2-statment, at skrive:

Response.Write strSQL2
Response.End

Kør scriptet, og skriv resultatet her!

/thomas
Avatar billede lightbrain Nybegynder
22. oktober 2002 - 17:38 #19
Det kan jeg ikke en gang give dig, fordi det vil den ikke udskrive... den vil heller ikke engang udskrive response.write ("*** " & Request.form("titel") & "***") ... ikke engang et eneste "*"

Nu fatter jeg virkeligt minus. (Jeg arbejder på sagen).
Avatar billede lightbrain Nybegynder
22. oktober 2002 - 17:50 #20
Er det måske noget med, at jeg poster fra den anden side med "multipart/form-data"? (Jeg bliver nødt til at bruge "multipart/form-data" ellers vil mit ASPUpload-kode ikke virke)
Avatar billede lightbrain Nybegynder
23. oktober 2002 - 15:03 #21
Jeg fandt selv ud af det, problemet med "multipart/form-data" blev løst ved at skrive "Upload.Form" i stedet for "Request.form". Nu virker det, tak for hjælpen.
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