16. oktober 2001 - 21:25Der er
4 kommentarer og 1 løsning
Jeg rpøver lige Count() igen !
Jeg har et forum, hvor jeg gerne vil have talt antallet af svar på hver enkelt indlæg.
I min tabel har jeg følgende felter: id, oprettetdato, brugernavn, overskrift, parentid
Når jeg opretter et nyt indlæg bliver parentid = 0, når der svares på et indlæg, bliver parentid = original-indlæg-ID (!).
Mit SQL kald er følgende: SQL = \"SELECT id, overskrift, oprettelsesdato, brugernavn, count(id) AS antalsvar FROM forum WHERE parentid = 0 or parentid = \"& id & \" GROUP BY parentid ORDER BY oprettetdato DESC;\"
Men når jeg forsøger at åbne det, får jeg 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 \'id\' as part of an aggregate function.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det går ikke. count kan kun bruges tal at tælle når der en mange records der har de samme uddata som der bedes om
SQL = \"SELECT parentid, parentoverskrift, parentoprettelsesdato, parentbrugernavn, count(parentid) AS antalsvar FROM forum WHERE parentid = 0 or parentid = \"& id & \" GROUP BY parentid ORDER BY oprettetdato DESC;\"
nu er de felter du trækker ud alle sammen nogen der er fælles for de indlæg du ønsker at gruppere.
Du skal have ID med i din GROUP BY sætning. SQL = \"SELECT id, overskrift, oprettelsesdato, brugernavn, count(id) AS antalsvar FROM forum WHERE parentid = 0 or parentid = \"& id & \" GROUP BY ID, parentid ORDER BY oprettetdato DESC;\"
>jakoba, jeg forstår ikke helt hvad du gør her, men jeg har jo ingen af de felter oprettet som du henviser til ??
>kayb - Den fungerer desværre heller ikke, fejlen lyder : 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 \'overskrift\' as part of an aggregate function.
De værdier du trækker ud skal skrives i resultattabbellen sammen med dit count. Det kan ikke lade sig gøre hvis du udtrækker fx brugernavn, da der vil være mange forskellige brugernavne i den tråd du ønsker at tælle. det med at skrive parent foran alle feltnavnene var blot for at indikere at data fra den record alle de grupperede indlæg har tilfælles er de eneste der kan udtrækkes sammen med count().
Hvis du vil have både count(id) og listing af de individuelle brugernavne i svarene må du lave 2 SQL sætninger
SQL = \"SELECT parentid, count(id) AS antalsvar FROM forum WHERE parentid = 0 or parentid = \"& id & \" GROUP BY parentid ORDER BY oprettetdato DESC;\"
Mit SQL kald er følgende: SQL = \"SELECT id, overskrift, oprettelsesdato, brugernavn FROM forum WHERE parentid = 0 or parentid = \"& id & \" GROUP BY parentid ORDER BY oprettetdato DESC;\"
mvh JakobA
Synes godt om
Ny brugerNybegynder
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.