Avatar billede likedon Nybegynder
18. september 2003 - 15:57 Der er 14 kommentarer og
1 løsning

Problemer med en top 10

SQL = "SELECT TOP 10 * FROM oenskeliste genre LIKE '%"&place&"%' ORDER BY filmid"

Jeg skal have følgende felter ud
titel, filmid, image

og min top 10 skal gå på dem der er flest ens flimid af. Altså noget lig:

SQL = "SELECT Count(filmid) as antal, filmid, titel, image FROM oenskeliste WHERE genre LIKE '%"&place&"%' GROUP BY filmid ORDER BY Count(filmid) DESC"


får følgende fejl:
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.
Avatar billede likedon Nybegynder
18. september 2003 - 15:57 #1
og med en top10 i..
Avatar billede likedon Nybegynder
18. september 2003 - 16:04 #2
nej det holder ikke.

Jeg har 2 tabeller, en jeg tæller på i:
(tabel1)
id, filmid,

og en med (tabel2)
titel, image, filmid


Hvordan laver jeg det sådan at den tager en dem fra (tabel2) som forekommer flest gange i (tabel1)
Avatar billede likedon Nybegynder
18. september 2003 - 16:17 #3
flere pt tilført
Avatar billede eagleeye Praktikant
18. september 2003 - 16:30 #4
Prøv sådan her:

SQL = "SELECT Count(filmid) as antal, filmid, titel, image FROM oenskeliste WHERE genre LIKE '%"&place&"%' GROUP BY filmid, titel ORDER BY Count(filmid) DESC"
Avatar billede eagleeye Praktikant
18. september 2003 - 16:31 #5
hov der skal også top 10 med..


SQL = "SELECT TOP 10 Count(filmid) as antal, filmid, titel, image FROM oenskeliste WHERE genre LIKE '%"&place&"%' GROUP BY filmid, titel ORDER BY Count(filmid) DESC"
Avatar billede likedon Nybegynder
18. september 2003 - 16:48 #6
Fejl:
[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'image' as part of an aggregate function

Det skal lige siges at det er en access
Avatar billede eagleeye Praktikant
18. september 2003 - 16:50 #7
Sådab her så skal ímge også med i GROUP BY:


SQL = "SELECT TOP 10 Count(filmid) as antal, filmid, titel, image FROM oenskeliste WHERE genre LIKE '%"&place&"%' GROUP BY filmid, titel, image ORDER BY Count(filmid) DESC"
Avatar billede likedon Nybegynder
18. september 2003 - 16:54 #8
top 10 firker ikke, den hiver alle ud
Avatar billede likedon Nybegynder
18. september 2003 - 17:05 #9
Jeg har følgende:

SQL = "SELECT TOP 10 Count(oenskeliste.filmid) as antal, oenskeliste.filmid, video.Titel, video.billede FROM oenskeliste, video WHERE oenskeliste.filmid=video.FilmID AND video.Genre LIKE '%"&place&"%' GROUP BY oenskeliste.filmid, video.Titel, video.billede ORDER BY Count(oenskeliste.filmid) DESC"

Lige nu er der 14 film den kan finde, og den tager dem alle
Avatar billede likedon Nybegynder
18. september 2003 - 17:10 #10
den gjorde det også før jeg koblede tabel 2 på
Avatar billede eagleeye Praktikant
18. september 2003 - 18:53 #11
ok prøv med JOIN:



SQL = "SELECT TOP 10 Count(oenskeliste.filmid) as antal, oenskeliste.filmid, video.Titel, video.billede FROM oenskeliste INNER JOIN video ON oenskeliste.filmid=video.FilmID WHERE video.Genre LIKE '%"&place&"%' GROUP BY oenskeliste.filmid, video.Titel, video.billede ORDER BY Count(oenskeliste.filmid) DESC"
Avatar billede likedon Nybegynder
18. september 2003 - 20:03 #12
Jeg fatter det ikke helt med her er min kode, det gav i øvrig ikke nogen forskel hvis jeg brugte join



'den her giver 14
SQL = "SELECT TOP 10 Count(oenskeliste.filmid) as antal, video.FilmID, video.Titel, video.billede FROM oenskeliste, video WHERE oenskeliste.filmid=video.FilmID AND video.Genre LIKE '%"&place&"%' GROUP BY video.FilmID, video.Titel, video.billede ORDER BY Count(oenskeliste.filmid) DESC"

'Den simple herunder den giver 10
'SQL = "SELECT TOP 10 * FROM video WHERE Genre LIKE '%"&place&"%' ORDER BY udlejet DESC, FilmID"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.CursorLocation = 3
RS.CursorType = 3
RS.ActiveConnection = Conn
RS.Open SQL, Conn, 1, 3
If NOT (RS.BOF AND RS.EOF) Then
do until RS.eof
strtitel=RS("Titel")
filmid=RS("FilmID")
pic=RS("billede")
Avatar billede eagleeye Praktikant
18. september 2003 - 20:05 #13
Er der så ikke nogle hvor count'et er ens??

Prøv at tilføje filmid i ORDE BY:


SQL = "SELECT TOP 10 Count(oenskeliste.filmid) as antal, video.FilmID, video.Titel, video.billede FROM oenskeliste, video WHERE oenskeliste.filmid=video.FilmID AND video.Genre LIKE '%"&place&"%' GROUP BY video.FilmID, video.Titel, video.billede ORDER BY Count(oenskeliste.filmid) DESC, oenskeliste.filmid"
Avatar billede likedon Nybegynder
19. september 2003 - 13:00 #14
Giver:

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'oenskeliste.filmid' as part of an aggregate function.
Avatar billede likedon Nybegynder
19. september 2003 - 13:02 #15
Løsning:
SQL = "SELECT TOP 10 Count(oenskeliste.filmid) as antal, video.FilmID, video.Titel, video.billede FROM oenskeliste, video WHERE oenskeliste.filmid=video.FilmID AND video.Genre LIKE '%"&place&"%' GROUP BY video.FilmID, video.Titel, video.billede ORDER BY Count(oenskeliste.filmid) DESC, video.FilmID"
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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