Avatar billede jps6kb Novice
13. juli 2004 - 17:26 Der er 20 kommentarer og
1 løsning

Brug af count

Hvordan :

optælle antal "id" hvor "id" = "gruppenr" fra en anden tabel`??
Avatar billede eagleeye Praktikant
13. juli 2004 - 17:32 #1
Kan du forklare lidt mere omkring det?
Men det kan måske løses med en join:

SQL = "select count(t1.id) as antal from t1 inner join t2 on t1.id=t2.gruppenr"
Avatar billede jps6kb Novice
13. juli 2004 - 17:34 #2
HUH?

Har en tabel "gruppe" og en table der hedder "traad"

Jeg vil gerne tælle de poster i traad hvor "id" = "gruppe.gruppenr"
Avatar billede ellebaek Nybegynder
13. juli 2004 - 17:39 #3
som eagle skriver:

SQL = "select count(traad.id) as antal from traad inner join gruppe on traad.id=gruppe.gruppenr"
Avatar billede eagleeye Praktikant
13. juli 2004 - 17:40 #4
Så prøv sådan her:

SQL = "select count(traad.id) as antal, traad.id from traad inner join gruppe on traad.id=gruppe.gruppenr group by traad.id"
Avatar billede eagleeye Praktikant
13. juli 2004 - 17:41 #5
så får du et antal for hver ID som der er tråde i.
Avatar billede jps6kb Novice
13. juli 2004 - 17:42 #6
Jepz... præcis... hvordan udskriver jeg den ? Er det ikke antal ?
Avatar billede eagleeye Praktikant
13. juli 2004 - 17:47 #7
SQL = "select count(traad.id) as antal, traad.id from traad inner join gruppe on traad.id=gruppe.gruppenr group by traad.id"
Set rs=Conn.Execute(SQL)

do while not rs.EOF
  Response.Write rs("id") & " antal poster " & rs("antal") & "<br>"
  rs.Movenext
loop
Avatar billede jps6kb Novice
13. juli 2004 - 17:57 #8
Microsoft JET Database Engine error '80040e10'

Der er ikke angivet nogen værdi for en eller flere krævede parametre.
Avatar billede eagleeye Praktikant
13. juli 2004 - 18:01 #9
Prøv at tjekke at tabel og kolonnenavne er rigtige.
Avatar billede jps6kb Novice
13. juli 2004 - 18:06 #10
Okay... det var lidt forkert... min fejl, men det hjalp ikke...

SQL = "select count(traad.id) as antal, traad.gruppe from traad inner join gruppe on traad.gruppe=gruppe.id group by traad.gruppe"


Får den her...


Microsoft JET Database Engine error '80004005'

Type mismatch in expression.

/go1/forum.asp, line 28



28:  Set rs=Myconn.Execute(SQL)
Avatar billede eagleeye Praktikant
13. juli 2004 - 18:09 #11
Så tyder det på at kolonnen traad.gruppe og kolonne gruppe.id ikke begge er af samme type, hvis gruppe.id er af typen autonummer eller tal skal traad.gruppe være af typen tal.
Avatar billede jps6kb Novice
13. juli 2004 - 18:29 #12
Der kommer lidt...
Men det er det samme tal der står ved de to "testgrupper" jeg har...

Der står "2" hvilket der også er i den første gruppe, men anden gruppe har flere tråde... ?

<%
while NOT data.EOF
%>
<%
SQL = "select count(traad.gruppe) as antal, traad.gruppe from traad inner join gruppe on traad.gruppe=gruppe.id group by traad.gruppe"
Set rs=Myconn.Execute(SQL)
%>
<div class="grupper"><a href="forumtraad.asp?gruppenr=<%=data("id")%>&gruppenavn=<% = data.Fields ("navn")%>"><% = data.Fields ("navn")%></a></div>
<br/>
<% Response.Write " antal poster " & rs("antal") & "<br>"
%>
<%
data.MoveNext
Wend
%>



Resultat :

Test gruppe 1
antal poster 2

Vi prøver noget med Poker eller noget…
antal poster 2
Avatar billede jps6kb Novice
13. juli 2004 - 18:59 #13
Anything ? Jeg ka' ikke få det igang ;)
Avatar billede eagleeye Praktikant
13. juli 2004 - 19:25 #14
Fordi der ikke er nogen sammenhæng imellem de to recordset du bruger.
Så skal du lave SQL sætningen om sådan den kun tæller for den du vil udskrive, sådan her:

SQL = "select count(traad.gruppe) as antal, traad.gruppe from traad inner join gruppe on traad.gruppe=gruppe.id where gruppe.id = " &data ("id")
Avatar billede jps6kb Novice
13. juli 2004 - 19:31 #15
Microsoft JET Database Engine error '80040e21'

You tried to execute a query that does not include the specified expression 'gruppe' as part of an aggregate function.

/go1/forum.asp, line 28





28: Set rs=Myconn.Execute(SQL)
Avatar billede eagleeye Praktikant
13. juli 2004 - 19:34 #16
Ok det skal være traad.gruppe ok ikke gruppe.id, prøv sådan her


SQL = "select count(traad.gruppe) as antal, traad.gruppe from traad inner join gruppe on traad.gruppe=gruppe.id where traad.gruppe = " &data ("id")
Avatar billede jps6kb Novice
13. juli 2004 - 19:36 #17
Microsoft JET Database Engine error '80040e21'

You tried to execute a query that does not include the specified expression 'gruppe' as part of an aggregate function.

/go1/forum.asp, line 28



Still ...
Avatar billede eagleeye Praktikant
13. juli 2004 - 19:44 #18
prøv lige sådan her:

SQL = "select count(traad.gruppe) as antal from traad inner join gruppe on traad.gruppe=gruppe.id where traad.gruppe = " &data ("id")
Avatar billede jps6kb Novice
13. juli 2004 - 19:46 #19
Så kører det sQ *GG* Tusind tak for hjælpen... smid lige et svar...
Avatar billede jps6kb Novice
13. juli 2004 - 19:46 #20
... og så lige lidt oven i hatten ;)
Avatar billede eagleeye Praktikant
13. juli 2004 - 19:56 #21
Ok het et svar :)
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
Kurser inden for grundlæggende programmering

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