Avatar billede rille101 Nybegynder
18. december 2006 - 12:44 Der er 12 kommentarer og
1 løsning

Select flere felter + en enkelt count

hej.
Jeg har lavet et debatforum, med to tabeller.
En til Debatemnet og en til alle indlæg.

På forsiden, hvor debatterne listes op, vil jeg nu gerne i parantes skrive antallet af svar til hver debat.

debat 1 (2 svar)
debat 2 (6 svar)
debat 3 (4 svar)
osv.

Jeg har prøvet at flette den anden tabel ind i nedestående sql, men når jeg begynder med count og group, så vælter skuden.
Jeg bliver ved med at få fejl, så nu giver jeg op, og søger jeres hjælp i stedet.
SQL'en som den ser ud nu:

SELECT *
FROM debatemne, brugere
WHERE debatemne.ansvarlig = brugere.brugernavn
ORDER BY debatemne.id DESC

Jeg har så en debatindlaeg.relation, som jeg gerne vil lave en count på i denne sql.

debatindlaeg.relation får tildelt debatemne.id alt efter hvor den hører til.
Avatar billede jensen363 Forsker
18. december 2006 - 13:17 #1
Problemet er antageligt, at du ikke med succes kan benytte SELECT * i forbindelse med GROUP

En løsning kunne se således ud :

SELECT debatindlaeg.id, Count(debatindlaeg.relation) AS Antal
FROM (brugere INNER JOIN debatemne ON brugere.brugernavn = debatemne.ansvarlig) INNER JOIN debatindlaeg ON debatemne.id = debatindlaeg.id
WHERE (((debatemne.ansvarlig)=[brugere].[brugernavn]))
GROUP BY debatindlaeg.id;
Avatar billede rille101 Nybegynder
18. december 2006 - 14:30 #2
SELECT debatindlaeg.relation, Count(debatindlaeg.relation) AS Antal
FROM (brugere INNER JOIN debatemne ON brugere.brugernavn = debatemne.ansvarlig) INNER JOIN debatindlaeg ON debatemne.id = debatindlaeg.relation
WHERE (((debatemne.ansvarlig)=[brugere].[brugernavn]))  GROUP BY debatindlaeg.relation;

Jo denne tæller rigtignok antallet af kommentarer, men nu vises kun felterne relation og Antal.
Det er meningen at der skal trækkes andre felter ud også.
eks: debatemne.titel, debatemne.oprdato osv.

Det er det jeg har problemer med...
Avatar billede jensen363 Forsker
18. december 2006 - 14:35 #3
Bare du ikke benytter SELECT *, så kan du selv tilføje de øvrige felter frit
Avatar billede rille101 Nybegynder
18. december 2006 - 14:40 #4
Jeg har både prøvet at tilføje debatemne.titel lige efter SELECT og lige efter AS Antal, men jeg får en fejl, når jeg tester det.
Noget med aggregatfunktion...
Avatar billede jensen363 Forsker
18. december 2006 - 17:12 #5
Har du mulighed for at zippe databasen og sende den (med beskrivelse af hvad du vil opnå), så skal jeg kigge på problemet
Avatar billede rille101 Nybegynder
19. december 2006 - 12:13 #6
Ja det har jeg, hvis jeg får en adresse.

hvis du ser denne side:
http://www.ballumby.net/lokalinfo/debatforum/debat-forside.asp

så ser man, at alle poster fra debatemne er listet op.

I denne repeat, ville jeg gerne have at antallet af indlæg (i debatindlaeg) der er relateret til de forskellige poster (i debatemne) vises i en parantes, så man kan se, hvor mange der har svaret på de forskellige debatter.
Avatar billede jensen363 Forsker
19. december 2006 - 12:16 #7
Send til ose@post.dk
Avatar billede jensen363 Forsker
19. december 2006 - 13:36 #8
Hvad med :

SELECT debatemne.titel, debatemne.oprdato, debatindlaeg.relation, Count(debatindlaeg.relation) AS Antal
FROM (brugere INNER JOIN debatemne ON brugere.brugernavn = debatemne.ansvarlig) INNER JOIN debatindlaeg ON debatemne.id = debatindlaeg.relation
WHERE (((debatemne.ansvarlig)=[brugere].[brugernavn]))
GROUP BY debatemne.titel, debatemne.oprdato, debatindlaeg.relation;
Avatar billede rille101 Nybegynder
19. december 2006 - 14:27 #9
Ja så virker det.
Det var fordi jeg ikke vidste at alle felter skal nævnes i GROUP.
Mange tak for hjælpen!
Vil du smide et svar?!
Avatar billede jensen363 Forsker
19. december 2006 - 14:29 #10
Jeg tænkte nok det var sådan noget :o)
Avatar billede rille101 Nybegynder
19. december 2006 - 14:38 #11
Ja så lærte jeg jo det :)
Ka du ha en god jul!

Venlig hilsen
Rene
Avatar billede jensen363 Forsker
19. december 2006 - 14:49 #12
I lige måde :o)
Avatar billede rille101 Nybegynder
29. december 2006 - 09:43 #13
Jensen!!!!
Har lige fundet ud af, at de poster der ikke er blevet kommenteret
(hvor Antal = 0) ikke bliver trukket frem i sql'en.
Ved du hvordan jeg kan få den tvist ordnet.
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