Avatar billede limemedia Nybegynder
19. juni 2001 - 11:02 Der er 8 kommentarer og
1 løsning

Access2000 fejl ?

Ja, Access er ikke noget jeg leger med normalt men jeg prøver at hjælpe en bekendt med en query der fejler og jeg fatter ikke helt hvorfor...

Vi har en query
SELECT si.sideid, si.titel, si.beskrivelse
FROM element2side es, elementer el, sider si
WHERE si.sideid=es.sideid AND es.elementid=el.elementid AND el.sogeord LIKE \'%\"&sogeord&\"%\'
GROUP BY si.sideid
ORDER BY si.sideid

Fejlen der kommer er
You tried to execute a query that does not include the specified expression \'titel\' as part of an aggregate function.

Jeg har ikke direkte adgang til databasen... Min ven siger at tabeller og feltnavne er korrekte...

HELP !


/ LJ
Avatar billede proaccess Nybegynder
19. juni 2001 - 11:07 #1
SELECT DISTINCT si.sideid, si.titel, si.beskrivelse
FROM element2side es, elementer el, sider si
WHERE si.sideid=es.sideid AND es.elementid=el.elementid AND el.sogeord LIKE \'%\"&sogeord&\"%\'

Så skulle den være der...
Avatar billede limemedia Nybegynder
19. juni 2001 - 11:11 #2
proaccess >> umiddelbart ser det ud til at virke, men når vi dropper GROUP BY mister vi muligheden for at lave en COUNT(si.sideid) - ja, jeg ved godt jeg glemte det i ovenstående spm... Noget du kan fuske ind i eksemplet ?
Avatar billede proaccess Nybegynder
19. juni 2001 - 11:13 #3
Du havde bruge GROUP BY uden at angive hvad der skulle ske med titel og beskrivelse...

Enten skal de være med til at danne gruppen, eller du skal angive om du vil tælle dem, vælge den første, mindste sidste og så videre.

Jeg satte distinct ind, for så grupperer den efter de data, som vises i forespørgslen, og sortérer efter den første kolonne...
Avatar billede proaccess Nybegynder
19. juni 2001 - 11:15 #4
SELECT si.sideid, si.titel, count(si.beskrivelse)
FROM element2side es, elementer el, sider si
WHERE si.sideid=es.sideid AND es.elementid=el.elementid AND el.sogeord LIKE \'%\"&sogeord&\"%\'
GROUP BY si.sideid, si.titel
ORDER BY si.sideid

Count(sideid) vil altid give 1 !!! (fordi du grupperer efter det)

Avatar billede nil.dk Nybegynder
19. juni 2001 - 11:21 #5
Det er mig der er ljwebs bekendt og som trækker på hans konsulenthjælp.

Det vil måske være nemmere hvsi jeg skrev præcis hvilket output det er jeg ønsker..

Jeg har 3 tabeller: elementer, sider og element2side

elementer består af en række webside-elementer. sider består af en række websider og element2side knytter de to sammen og fortæller hvilke elementer den enkelte side er sammensat af.

Hvert element har tilknyttet et felt der hedder sogeord i tabellen elementer.

Det jeg ønsker er en liste af sider der indeholder elementer, der indeholder det aktuelle søgeord. Disse sider skal ordnes efter hvor mange elementer den enkelte side har der har knyttet det aktuelle søgeord til sig. Der må ikke forekomme dubletter.

Er det nogenlunde klart udtrykt? ;o)
Avatar billede proaccess Nybegynder
19. juni 2001 - 11:29 #6
SELECT si.sideid, si.titel, si.beskrivelse, count(es.elementid) AS Elementer
FROM element2side es, elementer el, sider si
WHERE si.sideid=es.sideid AND es.elementid=el.elementid AND el.sogeord LIKE \'%\"&sogeord&\"%\'
GROUP BY si.sideid, si.titel, si.beskrivelse
ORDER BY Elementer DESC

Det er ikke afprøvet, men burde virke... Du skal eventuelt ændre ORDER BY til:
ORDER BY Count(es.elementid)


Avatar billede limemedia Nybegynder
19. juni 2001 - 11:39 #7
lyder til nil er tilfreds... lortet virker *g*
Avatar billede nil.dk Nybegynder
19. juni 2001 - 11:45 #8
Proaccess >> det er sjældent jeg bliver imponeret her på Eksperten... men jeg ret imponeret over hvor hurtigt du klarede det jeg selv har brugt timer på...
Avatar billede proaccess Nybegynder
19. juni 2001 - 11:49 #9
Takker... Det er altid rart at blive påskyndet...
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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