Avatar billede demojoe Nybegynder
28. november 2000 - 23:38 Der er 16 kommentarer og
1 løsning

SQL-Order by

Hejsa
Jeg har lidt problemmer med at finde ud af hvordan jeg skal hente nogle data ud fra min database.
Problemmet er at jeg skal hente de 4 poster der har det mindste ID men hvor ID > 3
Jeg skulle gerne få recordsettet ud med den største værdi først.

/demojoe
Avatar billede uffe_kld Nybegynder
28. november 2000 - 23:46 #1
virker denne line?

select top 4 *
from tabel
where id>3
Avatar billede demojoe Nybegynder
28. november 2000 - 23:49 #2
Tjoow,
Men jeg får ikke den rigtige rækkefølge.
Den skal vise de 4 ældste men med den nyeste forest.
Avatar billede uffe_kld Nybegynder
28. november 2000 - 23:53 #3
Tilføj  \"order by [felt?]\" tilsidst
hvis den stadig skriver i forkert rækkefølge skriv
\"order by [felt?] desc\"
Avatar billede demojoe Nybegynder
28. november 2000 - 23:55 #4
Det har jeg prøvet en million gange.
Men i stedet for at give mig 7,6,5,4 får jeg 15,14,13,12
Avatar billede demojoe Nybegynder
28. november 2000 - 23:56 #5
det var en fejl, det svar skulle ikke have været accepteret.
Avatar billede uffe_kld Nybegynder
29. november 2000 - 00:02 #6
Det skal løse med subquries, men det er lang tid siden jeg har prøvet at lave sådan en, så jeg kan nok først svare dig imorgen, men jeg har ikke glemt dig.
Avatar billede demojoe Nybegynder
29. november 2000 - 00:04 #7
Lyder godt!
Jeg har også et datofelt, hvis det kan hjælpe...

Jo nyere posten er jo højere ID har den.

/demojoe
Avatar billede 3dmaxer.dk Nybegynder
29. november 2000 - 00:12 #8
Er det ikke bare:

select * from tabel where id<8 and id>3

og måske skal du tilføje
order by id desc eller asc

:-( kan ikke svare
Avatar billede demojoe Nybegynder
29. november 2000 - 00:16 #9
Jo, men problemmet er så bare at hvis der bliver slettet en post, f.eks. post 7 så vil der kun blive vist 3 poster...
håber du forstår hvad jeg mener
Avatar billede demojoe Nybegynder
29. november 2000 - 00:24 #10
Du skal nok få nogle point hvis du kan svare...
Avatar billede vbmojo Nybegynder
29. november 2000 - 00:41 #11
SELECT TOP 4 *
FROM table
ORDER BY id DESC;

Længere er den vist ikke ;D
Avatar billede vbmojo Nybegynder
29. november 2000 - 00:46 #12
Oooooops - havde ikke lige set at id skulle være større end 3 og at det var de fire første du ville have fat i. Er det det her du skal bruge? Eller har jeg misforstået spørgsmålet?

SELECT TOP 4 *
FROM table
WHERE id > 3
ORDER BY id;

/vbMoJo

P.S.: Så var den alligevel længere ;D
Avatar billede demojoe Nybegynder
29. november 2000 - 08:12 #13
Det virker ikke.
Problemmet med foreslaget er at jeg får recorden ud med den mindste ID værdi først.
Hvis jeg bruger DESC får jeg de 4 poster med det højeste ID.
Avatar billede uffe_kld Nybegynder
29. november 2000 - 09:23 #14
Jeg vil mene at sætningen skal lyde noget det her

SELECT *
FROM [tabel]
ORDER BY [felt?] DESC
WHERE [key] = (select top 4 [key]
from [tabel]
Where id > 3
ORDER BY [felt?]
);

Måske skal DESC flyttes ind i subqurery.

Avatar billede demojoe Nybegynder
29. november 2000 - 09:34 #15
\"select * from fuckup order by artikel_id desc WHERE artikel_id = (select top 4 atikel_id from fuckup where artikel_id >3 order by artikel_i\"

Men så får jeg en fejl...

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in ORDER BY clause.

/demojoe/index.asp, line 28

Avatar billede uffe_kld Nybegynder
30. november 2000 - 08:46 #16
Jeg når først at kigge på i weekenden.
Avatar billede demojoe Nybegynder
30. november 2000 - 08:52 #17
Det er fair nok, det er ikke noget der haster. Men jeg hader bare ikke at kunne løse sådan nogle problemmer.
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