Avatar billede bugger Nybegynder
01. december 2003 - 14:28 Der er 16 kommentarer og
1 løsning

Hjælp med SQL

Jeg har en tabel
Navn    rute    dato
Ib    03    01-12-03
Bo    07    01-12-03
Ib    05    28-11-03
Ib    03    27-11-03
Ea    03    26-11-03
Bo    05    25-11-03

Hvordan vælger jeg : Nyeste ruter løbet for hvert navn. Altså I tabellen skal :
Ib rute 03
Bo rute 07
Ea rute 03
udvælges?
Avatar billede repsak Nybegynder
01. december 2003 - 14:31 #1
SELECT navn, rute FROM tabel ORDER BY dato ?
Avatar billede repsak Nybegynder
01. december 2003 - 14:31 #2
hov
SELECT DISTINCT navn, rute FROM tabel ORDER BY dato
Avatar billede bugger Nybegynder
01. december 2003 - 14:41 #3
Åhhh jeg kom til at lave en fejl -eller dårligt formuleret, hvad jeg mente var at man skulle få få udvalgt :
Ib rute 03
Bo rute 07
Ib rute 05 (dato 01-12-03)
Ea rute 03
Bo rute 05
Som du kan se er IB kun valgt een gang med rute 03 selvom han løb den både den 01-12-03 og 27-11-03.
Altså det seneste løb for hver rute for hver person. Jeg ved ikke om det kan gøres i et hug, men måskeee....?
Avatar billede bugger Nybegynder
01. december 2003 - 14:43 #4
Rettelse:
Ib rute 03  (dato 01-12-03)
Bo rute 07
Ib rute 05
Ea rute 03
Bo rute 05

skulle listen være
Avatar billede henrik_n Nybegynder
02. december 2003 - 10:15 #5
Prøv evt.:

SELECT navn, rute, Last(dato) as sidstdato FROM tabel group by navn, rute ORDER BY rute, Last(dato) DESC

/Henrik
Avatar billede bugger Nybegynder
02. december 2003 - 10:40 #6
Hej Henrik
strSQL = "SELECT Last(dato) FROM tider" virker heller ikke.

Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.

ellers tak for hjælpen
/Bugg
Avatar billede henrik_n Nybegynder
02. december 2003 - 10:56 #7
Hej Bugger
Avatar billede henrik_n Nybegynder
02. december 2003 - 10:59 #8
Hej Bugger

Kan du ikke vise din SQL streng og evt. resten.

Hvis du ikke sætter "Last(dato) as sidstedato" ind får du fejl.

Henrik
Avatar billede deeflate Nybegynder
02. december 2003 - 11:11 #9
Det her skulle virke:
Sortér efter dato i SQL:
"SELECT * FROM tabel ORDER BY dato DESC"

Sortér på navn og rute når du løber igennem rs:
Do until rs.eof
  if InStr(strSeneste, (rs("navn") & " " & rs("rute"))) = 0 then
    strSeneste = strSeneste & rs("navn") & " " & rs("rute") & ", "
    response.Write rs("navn") & " " & rs("rute") & " - " & rs("dato") & "<br>"
  end if
  rs.moveNext
Loop
Avatar billede bugger Nybegynder
02. december 2003 - 11:18 #10
Jeg har mokket en del med det og barberet SQLstrengen ned til:
strSQL = "SELECT Last(tider.dato) as sidstedato FROM tider" som ikke virker.
strSQL = "SELECT tider.brugerID, Last(tider.dato) as sidstedato FROM tider" giver fejlmeddelelsen:
Du har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk "brugerID" som en del af en aggregatfunktion.

strSQL= "SELECT brugerID, Last(tider.dato) as sidstedato from tider group by brugerID, dato" giver den velkendte :
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.

Jeg tror ikke man kan brge "Last" i SQL i ASP?
Avatar billede deeflate Nybegynder
02. december 2003 - 11:28 #11
Det skulle man kunne.
Men jeg kan heller ikke få det til at virke.
Go figure ;)
Avatar billede henrik_n Nybegynder
02. december 2003 - 13:06 #12
Hej bugger
Prøv denne :

SELECT navn, rute, MAX(Distinct dato) as sidstdato FROM tider group by navn, rute ORDER BY dato
henrik
Avatar billede bugger Nybegynder
02. december 2003 - 13:53 #13
strSQL = "SELECT tider.brugerID, MAX(Distinct dato) as sidstdato FROM tider group by brugerID"
giver fejlen:
Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "MAX(Distinct dato)".
??
Jeg er stået af :-)
Avatar billede henrik_n Nybegynder
02. december 2003 - 14:34 #14
strSQL = "SELECT tider.brugerID, MAX(Distinct tider.dato) as sidstdato FROM tider group by brugerID"

Jeg mener at huske, at når man bruger "tider.brugerID" skal de bruges ved alle!  ellers kan du bruge det sådan:

strSQL = "SELECT brugerID, MAX(Distinct dato) as sidstdato FROM tider group by brugerID"

Henrik
Avatar billede henrik_n Nybegynder
02. december 2003 - 14:42 #15
Du skal huske at have rute på også, eller får du kun den første brugerID og den sidste dato..

strSQL = "SELECT brugerID, rute, MAX(Distinct dato) as sidstdato FROM tider group by brugerID, rute"
Avatar billede henrik_n Nybegynder
02. december 2003 - 14:47 #16
Hej igen

Jeg har lige testet at du kan nøjes med:
strSQL = "SELECT brugerID, rute, MAX(dato) as sidstdato FROM tider group by brugerID, rute"
Avatar billede bugger Nybegynder
03. december 2003 - 09:46 #17
Hej Henrik
Det virker! Tak for hjælpen. Jeg var slet ikke klar over at man kunne bruge MAX.
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

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



Seneste spørgsmål Seneste aktivitet
I går 20:46 opkaldside Af hagbartm i Mobiltelefoner
I går 16:05 win 10 vil ikke boote Af bb69 i Windows
I går 11:20 Lenovo x390 Af tobberjas i PC
I går 10:14 Alder i Excel Af Nanarsi i Excel
I går 09:00 Flere linier på faneblad Af Peder Lund Nielsen i Excel