Avatar billede mailand Nybegynder
16. marts 2002 - 17:07 Der er 6 kommentarer

Noget med udvælgelse på flere kriterier

Jeg har et problem...

Jeg skal hente de seneste 10 records ud, som er kommentarer til et system. Men det skal være de seneste 10 forskellige kommentarer. Den må altså ikke bare tage top 10, men også sikre sig, at de har en forskellig url...

Altså noget med, at man i SQL'en først sorterer alle records, så de nyeste ligger først (SELECT * FROM table ORDER BY id DESC)

Dernæst skal man udvælge 'distinct'. (SELECT DISTINCT url FROM table ORDER BY id)

.... hvordan gør man det... Noget med outer og inner joins, men ja... jeg er ikke lige så haj til den slags....

#Mailand
Avatar billede terry Ekspert
16. marts 2002 - 17:12 #1
depends which database your using I think

In Access and SQL Server you can use Top 10 Waht dB are you using?
Avatar billede terry Ekspert
16. marts 2002 - 17:15 #2
SELECT DISTINCT TOP 10 url FROM table ORDER BY id
Avatar billede mailand Nybegynder
16. marts 2002 - 17:17 #3
i'm using ms sql

but i can't use TOP 10... it does not select distinct...

imagine this table:

id    url
1    1.asp
2    2.asp
3    2.asp
4    3.asp

my issue is to retrieve the top 3 selected distinct by url and ordered by id descending...

that means i should get the following:
3.asp
2.asp
1.asp

that is the case i want to solve...
Avatar billede mailand Nybegynder
16. marts 2002 - 17:19 #4
you have to include your ordering field in you sql statement. so your:
SELECT DISTINCT TOP 10 url FROM table ORDER BY id
is not accepted... and if you change it to
SELECT DISTINCT TOP 10 url,id FROM table ORDER BY id
you don't get the result intended
Avatar billede teepee Nybegynder
16. marts 2002 - 17:28 #5
Hvis det ikke virker så prøv med inline view...

SELECT DISTINCT TOP 10 url FROM (
SELECT url FROM table ORDER BY id DESC)
Avatar billede mailand Nybegynder
16. marts 2002 - 17:44 #6
hmmm.

ved at bruge:
SELECT DISTINCT TOP 3 c_url FROM (SELECT * FROM t_comments ORDER BY c_id DESC)

får jeg følgende fejl:
[Microsoft][ODBC SQL Server Driver][SQL Server]An ORDER BY clause is invalid in views, derived tables, and subqueries unless TOP is also specified.
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
Computerworld tilbyder specialiserede kurser i database-management

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