Avatar billede hestetoften Nybegynder
16. juni 2004 - 22:37 Der er 14 kommentarer og
1 løsning

Sortering med ASP og SQL

Jeg har en tabel der ser således ud:

model  fraÅr  TilÅr
model1 1995  1997
model2 1996  1999
model3 1996  1997

Jeg har en forespørgsel + lidt ASP kode der finder frem til dette:

(AspKode:for i = fraÅr to tilÅr
response.write model&" "&i )

model1 1995
model1 1996
model1 1997
model2 1996
model2 1997
Etc...

Jeg skal have fat i en forespørgsel der finder frem til dette res.

model1 1995  //først vises alle modeller fra 1995
model1 1996  //derefter vises alle modeller fra 1996
model2 1996
model3 1996
model1 1997  //derefter vises alle modeller fra 1997
model2 1997
model3 1997
model2 1998
model2 1999

Men denne sorteringen kan jeg ikke finde ud af ?
Avatar billede lkekspert Nybegynder
16. juni 2004 - 22:51 #1
Er det en databasetabel?
Avatar billede hestetoften Nybegynder
16. juni 2004 - 22:55 #2
Ja MS.Access
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:07 #3
Jeg går udfra du har et recordset, rs:

For i = fraÅr To tilÅr
  Do While Not rs.EOF
    Response.Write(model &" "&i)
    rs.movenext
  Loop
Next
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:09 #4
lige en rettelse:

For i = fraÅr To tilÅr
  Do While Not rs.EOF
    Response.Write(model &" "&i &"<br>)
    rs.movenext
  Loop
Next
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:09 #5
Gaaab - sent :-) rettelse

For i = fraÅr To tilÅr
  Do While Not rs.EOF
    Response.Write(model &" "&i &"<br>")
    rs.movenext
  Loop
Next
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:10 #6
Gaaab - sent :-) rettelse

For i = fraÅr To tilÅr
  Do While Not rs.EOF
    Response.Write(model &" "&i &"<br>")
    rs.movenext
  Loop
Next
Avatar billede hestetoften Nybegynder
16. juni 2004 - 23:24 #7
Ja
Sådan her:

sql = "SELECT * from MinTabel "
RS.open sql, conn, 1
  Do While Not rs.EOF
    For i = rs("fraÅr") To rs("tilÅr")
    Response.Write(model &" "&i &"<br>")
    Next
  rs.movenext
  Loop
Avatar billede hestetoften Nybegynder
16. juni 2004 - 23:29 #8
Jeg har en ide om at der først skal laves en SQL der udtrækker årstallene fra fraÅr til tilÅr altså [1996-1998] bliver til [1996-1997-1998].

Denne SQL er nestet i en SQL der sorterer efter de "resultat årstal" (1996-1997-1998), der blev lavet af den første SQL !
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:40 #9
Jeg er gået udfra at dit fraÅr ikke er et tekstfelt

"Select fraÅr, model from minTabel " & _
"Where fraÅr Like 1996 " & _
"OR fraÅr Like 1997 " & _
"OR fraÅr Like 1998 " & _
"Order By fraÅr"
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:44 #10
Jeg vil mene du får det recordsetet - med de data du skal bruge. Du kan evt. anvende DESC (Descending) hvis du vil have recordsettet sorteret i omvendt orden.

"Order By fraÅR DESC"
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:48 #11
så skulle det vel ikke være nødvendigt med mere end:

Do While Not rs.eof
  Response.Write(model&" "&fraÅR)
Loop
Avatar billede hestetoften Nybegynder
16. juni 2004 - 23:49 #12
på denne måde får jeg kun fat i hver post én gang, men f.eks. model1 skal jeg have fat i 3 gange (1995-1996-1997)
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:51 #13
Okay...
Avatar billede lkekspert Nybegynder
16. juni 2004 - 23:59 #14
Så er du vist nødt til at gennemløbe recordsettet for hvert fraÅr, lykkes det så ikke?

For i = 1996 to 1998
  Do While Not rs.eof
    Response.Write(model&" "&i)
  Loop
Next
Avatar billede hestetoften Nybegynder
17. juni 2004 - 00:48 #15
brugte en SQL+ASP til at fylde en tempTabel.
Og valgte derefter resultatet fra denne temptabel.
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