Avatar billede canedo Nybegynder
18. april 2005 - 22:22 Der er 7 kommentarer og
1 løsning

Problem med SQL sætning og sortering

Normalt anvender jeg denne SQL for at se de nyeste records i min tabel:

order = request("order")

SQL = "SELECT TOP 30 brugerID, fotoType, fototekst, brugernavn,"&_
      " datoSidstSet, datoForOprettelse, ip FROM [brugere] "&_
      "WHERE brugerID<>8 ORDER BY " & order & " desc;"

Men det går i kage, når jeg reelt kun vil se de nyeste records samtidig med at jeg sætter en order på en anden kolonne. For så går TOP 30 ind med udgangspunkt i den nye rækkefølge uden at tænke på, at jeg kun er interesseret i at se de nyeste 30 records helt overordnet...

Hvordan løser jeg lige den?
Avatar billede lizardine Nybegynder
18. april 2005 - 22:33 #1
Kunne du ikke sorter på en oprettelsesdato og så din order. F.eks. Order By Dato, " & order & " Desc
Avatar billede canedo Nybegynder
18. april 2005 - 22:37 #2
kan man sætte order 2 gange? Jeg går i seng nu, men vender stærkt tilbage i morgen formiddag.
Avatar billede lizardine Nybegynder
18. april 2005 - 22:42 #3
Nej, det kan man ikke. Det du kan gøre er som ovenstående eksempel:

Select * From Tabel Order By Dato Desc, " & order & " Desc
Avatar billede canedo Nybegynder
19. april 2005 - 13:20 #4
Nu gør jeg sådan her, og det ikke efter hensigten. Der sorteres nu udelukkende på datoForOprettelse men ikke efter den order-streng der sendes:


SQL = "SELECT TOP 24 brugerID, fotoType, fototekst, brugernavn"&_
      ", datoSidstSet, datoForOprettelse, ip FROM [brugere]"&_
      " WHERE brugerID<>8 ORDER BY datoForOprettelse desc, " & order & " desc;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open SQL, Connect, 3, 1
Avatar billede canedo Nybegynder
19. april 2005 - 13:23 #5
Jeg bruger TOP24 for at få de første 24 records frem, - vil ikke se alle 500 records...
Avatar billede canedo Nybegynder
19. april 2005 - 13:39 #6
nu har jeg ændret det lidt til sådan her for at finde de første 31 poster, men det virker ikke...

SQL = "SELECT * FROM [brugere]"&_
      " WHERE brugerID<>8 ORDER BY " & order & " desc;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open SQL, Connect, 3, 1

Do while rs.RecordCount < 31
--diverse html --
Loop
Avatar billede canedo Nybegynder
19. april 2005 - 13:47 #7
Well well... nu har jeg gjort sådan her:

SQL = "SELECT * FROM [brugere]"&_
      " WHERE brugerID<>8 ORDER BY datoForOprettelse desc, " & order & " desc;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open SQL, Connect, 3, 1

count = 1
Do while count < 10
count = count + 1
-- HTML række --
rs.movenext
Loop

Og den finder rigtigt nok kun 10 records efter datoForOprettelse, men den vil stadig ikke hive order-strengen ind...
Avatar billede canedo Nybegynder
09. maj 2005 - 10:02 #8
lukker :o)
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