19. juli 2002 - 16:53Der er
3 kommentarer og 1 løsning
En til SQL x-perterne
Hej eksperter!
Jeg sidder og roder med et forum/message board, og er løbet ind i følgende:
Når jeg lister mine poster, vil jeg gerne vise, hvor mange svar, der er under det pågældende post.
Jeg har to tabeller: "tblPoster" og "tblSvar" som er relaterede på "tblPoster"s primære nøgle ("Post_ID")
Jeg kunne selvfølgelig lave en simpel "Select * tblPoster" og så iterere gennem mit recordset, og gennem hver iteration oprette et nyt recordset udfra noget ala: "SELECT COUNT(*) AS antalSvar FROM tblSvar WHERE Post_ID = " & aktuelPostID
På denne måde ville jeg kunne se antal svar for hver post jeg støder på...
Men kan jeg ikke "slå det sammen" SQL? Så jeg slipper for at oprette et ekstra recordet og en ekstra forespørgsel ved hver itreration?
Noget ala:
"SELECT Post_ID, Post_Overskrift, (SELECT COUNT(*) FROM tblSvar WHERE tblSvar.Post_ID = tblPoster.Post_ID) As antalSvar FROM tblPoster;"
Jeg håber jeg gør mig forståelig, ellers må I endelig lade mig det vide. På forhånd tak for hjælpen.
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.
en måde jeg lavede noget pågældende på engang var simpelthen at lave en "spm" tabel samt en "svar" tabel - når der så kom et svar havde jeg en kolonne i min spm-tabel hvor der blev lagt 1 til den allerede eksisterende værdi
denne måde kræver selvfølgelig arbejdet på et andet tidspunkt i din kode, men det var hvad der var mest optimal til min løsning dengang - måske en mulighed for dig også...
SELECT count(tblSvar.*) AS antalSvar, first(tblPoster.Post_ID) AS firstPostID, first(tblPoster.Post_Overskrift) AS firstPostOverskrift FROM tblSvar INNER JOIN tblPoster ON tblSvar.Post_ID = tblPoster.Post_ID GROUP BY firstPostID ORDER BY firstPostOverskrift
...tror jeg nok. Jeg ville bygge og teste i Access, hvis jeg havde tabellerne. Og så skifte til SQl-view og snuppe koden, når det virkede.
Synes godt om
Slettet bruger
20. juli 2002 - 02:12#3
"SELECT tblMedlem.Medlem_ID, Medlem_Handle, tblPoster.Post_ID, Post_Dato, Post_Overskrift, (SELECT COUNT(*) FROM tblSvar WHERE tblSvar.Post_ID = tblPoster.Post_ID) AS AntalSvar FROM (tblMedlem INNER JOIN tblPoster ON tblMedlem.Medlem_ID = tblPoster.Medlem_ID), tblSvar WHERE Forum_ID = " & intBoardID & " GROUP BY tblMedlem.Medlem_ID, Medlem_Handle, tblPoster.Post_ID, Post_Dato, Post_Overskrift ORDER BY tblPoster.Post_Dato DESC;"
Tag DEN... hehehe.
neteffect: jeg fik mig nusset frem til ovenstående (som virker) dels ved hjælp af Access og siden hen ved noget "roden frem og tilbage". Det var dog dit indlæg, der fik mig "sparket i gang", så hvis du smider et svar, er der point som tak for hjælpen.
Synes godt om
Slettet bruger
26. september 2002 - 02:08#4
Nå... jammen så vil jeg lukke... takker endu en gang.
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.