Avatar billede cygnet Praktikant
26. marts 2006 - 14:02 Der er 6 kommentarer og
1 løsning

Top 10 liste

Jeg har to tabeller den ene hedder

Steder og indholder felterne ID og TITEL

Den anden hedder Anbefalinger og indholder felter ID og STED_ID

Jeg vil godt have rangereret udtræk fra Steder ud fra hvor mange der har anbefalet stedet.

Altså hvis Sted 1 har 5 anbefalinger skal den ligge over sted 2 der kun har 3 anbefalinger.

Skal siges at der i tabeller med anbefalinger laves en ny række ved hvem anbefaling.

På forhånd tak ...

Kristian Sørensen
Avatar billede eagleeye Praktikant
26. marts 2006 - 14:40 #1
Du kan lave det sådan her:

sql = "select count(Anbefalinger.Sted_ID) as antalAnbefalinger, titel from Steder left join Anbefalinger on Steder.id = Anbefalinger.Sted_ID order by count(Anbefalinger.Sted_ID) desc"


Så har du en top liste sådan her:

sql = "select count(Anbefalinger.Sted_ID) as antalAnbefalinger, titel from Steder left join Anbefalinger on Steder.id = Anbefalinger.Sted_ID order by count(Anbefalinger.Sted_ID) desc"

Set rs = Conn.Execute(sql)
do while not rs.EOF
  Response.Write rs("titel") & " antal anbefalinger " & rs("antalAnbefalinger")

  rs.Movenext
loop
Avatar billede eagleeye Praktikant
26. marts 2006 - 14:41 #2
vil du kun havde de første 10 ud kan du tøje top 10 sådan her:

sql = "select top 10 count(Anbefalinger.Sted_ID) as antalAnbefalinger, titel from Steder left join Anbefalinger on Steder.id = Anbefalinger.Sted_ID order by count(Anbefalinger.Sted_ID) desc, Steder.id desc"



sql sætningen skulle virke med Access nruger du mysql skal den rettes lidt.
Avatar billede cygnet Praktikant
26. marts 2006 - 14:50 #3
jeg bruger access - men får følgende fejl :

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

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'titel' as part of an aggregate function.

/vips.asp, line 56

Fejlen sker med linien med hvor den executer
Avatar billede eagleeye Praktikant
26. marts 2006 - 14:54 #4
Hedder din kolonne ikke titel?

men prøv lige sådan her, hvis den brokker sig over titel:

sql = "select count(Anbefalinger.Sted_ID) as antalAnbefalinger, [titel] from Steder left join Anbefalinger on Steder.id = Anbefalinger.Sted_ID order by count(Anbefalinger.Sted_ID) desc"
Avatar billede cygnet Praktikant
26. marts 2006 - 15:00 #5
suk - den brokker sig over det samme..
Avatar billede eagleeye Praktikant
26. marts 2006 - 15:02 #6
doh jeg har også glemt group by delen prøv live sådan her:

sql = "select count(Anbefalinger.Sted_ID) as antalAnbefalinger, [titel] from Steder left join Anbefalinger on Steder.id = Anbefalinger.Sted_ID group by [titel] order by count(Anbefalinger.Sted_ID) desc"
Avatar billede cygnet Praktikant
26. marts 2006 - 15:06 #7
Det hjalp :-p
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