Avatar billede henrik61 Nybegynder
14. december 2002 - 21:41 Der er 6 kommentarer og
1 løsning

Brug af count i SQL

Hej
Det er et lille forum som skal vise hvor mange besvarelser der er kommet på de forskellige indlæg. Men jeg kan ikke må min COUNT til at virke.
Det ser ud som flg.:
Jeg har en db med flg. kolonner:
Id, Navn, Emne, Dato, Reply_Id, Thread

Jeg har en SQL-streng som ser sådan ud:
strSQL = "SELECT * FROM tabel1 WHERE Thread = 'Sand'"

Jeg har en anden SQL-streng der ser sådan ud:
strSQL_C = "SELECT COUNT(Reply_Id) AS antal FROM Tabel1 WHERE Reply_Id ='Id'"

Hvordan skal jeg sætte det op?
Avatar billede dk_akj Nybegynder
14. december 2002 - 22:00 #1
strSQL = "SELECT count(id) FROM tabel1 WHERE Thread = 'Sand'"

//akj
Avatar billede dk_akj Nybegynder
14. december 2002 - 22:02 #2
strSQL = "SELECT count(id)as mycount FROM tabel1 WHERE Thread = 'Sand'"
set rs = conn.execute (strSQL)
if not rs.eof then
  response.write rs("mycount")
else
  response.write "Ingen rækker"
end if
Avatar billede henrik61 Nybegynder
14. december 2002 - 22:39 #3
Hej akj
Det er desværre ikke det. Jeg kan lige vise dig koden:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db2.mdb")
Conn.Open DSN
strSQL = "SELECT * FROM tabel1 WHERE Thread = 'Sand'"
strSQL_C = "SELECT COUNT(Reply_Id) AS antal FROM Tabel1 WHERE Reply_Id ='Id'"
SET rs = Conn.EXECUTE(strSQL)
SET rscount = Conn.EXECUTE(strSQL_C)
%>
I body'en laver jeg et loop:
<%
IF NOT (rs.BOF OR rs.EOF) THEN
Response.Write "<table width='100%' cellspacing='0' cellpadding='0'>"
Response.Write "<tr>"
Response.Write "<td  width='60%'><b>Subject</b></td>"
Response.Write "<td width='20%' align='center'><b>Replies</b></td>"
Response.Write "</tr>"
Response.Write "<tr><td><hr></td><td><hr></td></tr>"
    DO WHILE NOT rs.EOF
    Response.Write "<tr>"
    Response.Write "<td>" & "<a href=view.asp?strId=" & rs("Id") &  ">" & rs("Emne")  & "</a>" & "<br>" & "Startet by: " & rs("Navn") &  "&nbsp;" & " d. " & rs("Dato") & "</td>"
    Response.Write "<td  align='center'>" & rscount("antal") & "</td>"
    Response.Write "</tr>"
    Response.Write "<tr><td><hr></td><td><hr></td></tr>"
    rs.MoveNext
    Loop
Response.Write "</table>"
End If
Conn.Close
Set Conn = Nothing
%>
det har noget med det loop jeg laver. Jeg kan godt få den til at udskrive de forkellige poster, men desværre ikke med hvor mange indlæg der er i hver post.
Avatar billede dk_akj Nybegynder
14. december 2002 - 22:53 #4
Jeg tror det går galt fordi du prøver at tælle hvor mange indlæg der er i tråden inden du kender id på tråden.

prøv dette script.

//akj

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db2.mdb")
Conn.Open DSN
strSQL = "SELECT * FROM tabel1 WHERE Thread = 'Sand'"
SET rs = Conn.EXECUTE(strSQL)
%>
I body'en laver jeg et loop:
<%
IF NOT (rs.BOF OR rs.EOF) THEN
Response.Write "<table width='100%' cellspacing='0' cellpadding='0'>"
Response.Write "<tr>"
Response.Write "<td  width='60%'><b>Subject</b></td>"
Response.Write "<td width='20%' align='center'><b>Replies</b></td>"
Response.Write "</tr>"
Response.Write "<tr><td><hr></td><td><hr></td></tr>"
    DO WHILE NOT rs.EOF
    Response.Write "<tr>"
    Response.Write "<td>" & "<a href=view.asp?strId=" & rs("Id") &  ">" & rs("Emne")  & "</a>" & "<br>" & "Startet by: " & rs("Navn") &  "&nbsp;" & " d. " & rs("Dato") & "</td>"

    strSQL_C = "SELECT COUNT(Reply_Id) AS antal FROM Tabel1 WHERE Reply_Id ='"&rs("ID")&"'"
    SET rscount = Conn.EXECUTE(strSQL_C)

    Response.Write "<td  align='center'>" & rscount("antal") & "</td>"
    Response.Write "</tr>"
    Response.Write "<tr><td><hr></td><td><hr></td></tr>"
    rs.MoveNext
    Loop
Response.Write "</table>"
End If
Conn.Close
Set Conn = Nothing
%>
Avatar billede henrik61 Nybegynder
14. december 2002 - 23:30 #5
Hej akj
Du er jo kanon - det virker. 1000 tak
jeg håber du får mine point ellers må du lige skrive tilbage på henriksc@yahoo.com så skal jeg nok finde ud af noget.
Avatar billede henrik61 Nybegynder
14. december 2002 - 23:33 #6
Hej akj
UPPPS jeg kom lige til at give mig selv de 100 p.
Jeg kan stille et nyt sp.m. som kun du svare på?
Avatar billede dk_akj Nybegynder
15. december 2002 - 09:44 #7
God ide :o)
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