19. september 2002 - 16:19Der er
25 kommentarer og 2 løsninger
SQL: SELECT COUNT - haster lidt :o(
Jeg har en database med en masse besvarelser på en masse debatoplæg.
Disse debatoplæg bliver oprettet i kategorier, nøjagtigt som her på Eksperten.
Hvordan tæller jeg det antal kategorier sammen, som er blevet brugt? Følgende SQL-sætning skelner ikke mellem antallet af kategorier, men tæller samtlige besvarelser sammen, og det var jo ikke meningen:
<% 'Tæller antal poster strSQLcategory = "SELECT COUNT(categoryID) AS AntalKategorier FROM debate" 'WHERE RS("categoryID") <>" - DENNE SÆTNING ER IKKE FÆRDIGGJORT Set RS = myConn.Execute(strSQLcategory) %>
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.
categoryID bliver knyttet til oprettelsen af debatemnet. categoryID kan gå fra 1 til 9. Denne værdi bliver smidt ned i categoryID. Her kan der f.eks. ligge flere debatemner med f.eks. værdien 5, 7, 3 eller hvilke kategorier folk nu har valgt at oprette deres debatemner i. Blev det mere tydeliggjort? :o) Det er lidt svært at forklare, men uanset hvordan databasen er bygget op, skal sætningen tælle det antal af kategorier sammen, der er oprettet debatemner i. Selvom der er
8 oprettede debatemner i kategori 1 142 oprettede debatemner i kategori 2
- så er der jo stadig kun oprettet debatemner i 2 kategorier.
Jeg kan ikke lige se det for mig, men jeg tror du kan lave en smart lykke på din side, som finder frem til tallet du er ude efter. Lav din sql sætning sådan her: select categoryID from debate order by categoryID Det giver dig et recordset med alle categoryID, ordnet efter størrelse. I koden laver du dette lidt usmukke kode: a = 0 forrgeid = "" Do while not rs.eof if rs(0) <> forrigeid then a = a + 1 forrigeid = rs(0) rs.movenext loop Så skulle den tælle sammen hvor mange forskellige id'er der er i tabellen.
Hmm... Du har valgt at lave det på en lidt anderledes måde.
Normalt ville man, hvis man skal følge bogen, lave to tabeller, en som indeholder informationer om de forskellige kategorier, og en der indeholder information om de specifikke indlæg.
Det er der forvirringen er.
SELECT debate.categoryId FROM debate WHERE (SELECT COUNT(postID) FROM DEBATE where categoryId=debate.categoryId) > 0
Denne virker måske...
Hvis ikke, må jeg nok hellere oprette en testdatabase
'Tæller antal kategorier strSQLcategory = "SELECT categoryID FROM debate ORDER by categoryID" a = 0 forrgeID = "" Do While not RS.EOF If RS(0) <> forrigeID Then a = a + 1 forrigeID = RS(0)
Set RS = myConn.Execute(strSQLcategory) %>
<b><%=RS("a") RS.MoveNext Loop %> </b> forskellige kategorier</td> </tr>
Nej den vil ikke virke. <% 'Tæller antal kategorier strSQLcategory = "SELECT categoryID FROM debate ORDER by categoryID" Set RS = myConn.Execute(strSQLcategory) a = 0 forrgeID = "" Do While not RS.EOF If RS(0) <> forrigeID Then a = a + 1 forrigeID = RS(0) RS.MoveNext Loop response.write "der er " & a & " kategorier" %>
Undskyld mit sene svar, jeg fandt frem til en helt anden løsning :o)
Tak for hjælpen!
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.