14. oktober 2008 - 15:55
Der er
19 kommentarer og 1 løsning
SELECT TOP 5 (access)
Jeg er lige ved at give op... Jeg har en access database med en masse links i. Jeg vil nu gerne vise en top 5 over de links der er tilmeldt flest gange. Jeg har denne: ("select distinct top 5 url, count(url) as antal from tabel group by url order by count(url) desc") Og den virker sådan set fint nok, men jeg vil gerne have flere data en "url". Hvordan får jeg flettet * ind i SQl sætningen? På forhånd tak
Annonceindlæg fra HP
14. oktober 2008 - 15:59
#1
Hvad har du prøvet?
14. oktober 2008 - 16:01
#2
Jeg har prøvet med: ("select distinct top 5 * count(url) as antal from tabel group by url order by count(url) desc") Og ("select distinct top 5 url, id, title count(url) as antal from tabel group by url order by count(url) desc") osv... Men intet kan jeg få til at virke.
14. oktober 2008 - 16:03
#3
("select distinct top 5 url, id, title count(url) as antal from tabel group by url order by count(url) desc") skal nok bare være: ("select distinct top 5 url, id, title, count(url) as antal from tabel group by url order by count(url) desc") Dvs. et ekstra komma. =)
14. oktober 2008 - 16:05
#4
Får følgende fejl på den: Microsoft JET Database Engine error '80040e21' You tried to execute a query that does not include the specified expression 'title' as part of an aggregate function.
14. oktober 2008 - 16:09
#5
Måske fordi title er et reserveret ord? Prøv: ("select distinct top 5 url, id, [title], count(url) as antal from tabel group by url order by count(url) desc")
14. oktober 2008 - 16:13
#6
Det giver samme fejl alligevel. Kan jeg gøre det på andre måder? Jeg skal bare bruge en top 5 over de links(url), der er tilmeldt flest gange?
14. oktober 2008 - 16:14
#7
Står der præcis: You tried to execute a query that does not include the specified expression 'title' as part of an aggregate function. ? Dvs. med ordet "title"?
14. oktober 2008 - 16:23
#8
ja
14. oktober 2008 - 16:24
#9
Hvilken fejlmeddelelse, hvis du fjerner title?
14. oktober 2008 - 16:25
#10
du skal ikke bruge distinct:) fjern distinct!!
14. oktober 2008 - 16:25
#11
select top 5 url,[title], count(url) as antal from tabel group by url, [title] order by count(url) desc
14. oktober 2008 - 16:26
#12
("select distinct top 5 url, id, count(url) as antal from pxd group by url order by count(url) desc") Giver: You tried to execute a query that does not include the specified expression 'id' as part of an aggregate function.
14. oktober 2008 - 18:10
#13
virker det eller?
14. oktober 2008 - 18:47
#14
Prøv uden extinct, som Kalp foreslår. =) Du har jo group by.
14. oktober 2008 - 21:22
#15
Hej igen. Undskyld, havde ikke lige set kalp's forslag sidst jeg svarede. Denne her som kalp foreslår virker: select top 5 url,[title], count(url) as antal from tabel group by url, [title] order by count(url) desc Men den laver mere en 5 poster. Sikkert fordi der er flere der har samme værdi.
14. oktober 2008 - 21:39
#16
måske ikke så kønt, men tror det vil virke:) select top 5 url,[title], count(url) as antal from tabel where url in (select distinct top 5 url from tabel desc) group by url, [title] order by count(url) desc
14. oktober 2008 - 21:44
#17
Jeg har fikset det med en: While i < 5 osv... :) Tak for hjælpen til jer begge. kalp: din virkede så du får point.
14. oktober 2008 - 22:19
#18
:-)
14. oktober 2008 - 22:25
#19
btw: dit sidste forslag duede ikke.
14. oktober 2008 - 22:34
#20
hvis der ikke er syntax fejl så skal det der virke:) (kan se du har en kolonne der hedder id. select id, url,[title], count(url) as antal from tabel where id in (select distinct top 5 id from tabel desc) order by count(url) desc antager at ID er unikt. Du kan sagtens fikse det via. SQL og den her SQL er meget meget tæt på hvis der ikke er et syntax problem;) og hvis den ikke virker.
Kurser inden for grundlæggende programmering