Avatar billede vester Novice
24. maj 2003 - 22:14 Der er 13 kommentarer og
1 løsning

Tælle sammen i database

I min tabel har jeg en kolonne der hedder BrugerId. Værdien af denne er ofte den samme i flere poster, så derfor vil jeg gerne vide, hvordan jeg tæller hvor mange unikke BrugerId's der er i alt?

VesTer
Avatar billede eagleeye Praktikant
24. maj 2003 - 22:19 #1
Hvilken database er det?

Du kan prøve med dette:

SQL = "SELECT Count(distinct brugerID) FROM tabel"

Den virker vist bare ikke i Access.
Avatar billede ellebaek Nybegynder
24. maj 2003 - 22:20 #2
sql = "select count(*) as total from tabel group by BrugerId"
set conn = conn.execute(sql)

response.write conn("total")


Hvad med sådan ??
Avatar billede vester Novice
24. maj 2003 - 22:35 #3
Hvad er der galt her?

<%
set ObjConn = Server.CreateObject ("ADODB.Connection")
strConnDriver="Driver={Microsoft Access Driver (*.mdb)};"
strConnPath="DBQ=" & Server.MapPath ("./db/Statistik.mdb")
objConn.Open strConnDriver & strConnPath
set RS = Server.CreateObject ("ADODB.RecordSet")
%>
<table border="0" Cellpadding="0" Cellspacing="0" width="600px">
<%
Strsql = "select count(*) as total from Statistik group by BrugerId"
set conn = conn.execute(Strsql)
%>

    <TR>
        <td colspan="8" Bgcolor="#bababa" align="right" width="100%"><%=Total%></td>
    </tr>

<%
objConn.Close
set RS = nothing
set objConn = nothing
%>
</table>
Avatar billede vester Novice
24. maj 2003 - 22:36 #4
Det er netop en access database
Avatar billede eagleeye Praktikant
24. maj 2003 - 22:37 #5
men dette:    count(*) as total  giver ikke unikke brugerID men sammlet antal poster i din tabel.
Avatar billede ellebaek Nybegynder
24. maj 2003 - 22:37 #6
jeg har revurderet min holdning til mit svar :-)
Problemet med det er at den tæller hvor mange indlæg hver enkelt bruger har lavet i stedet for at tælle hvor mange forskellige brugere der har poster i databasen...
Avatar billede vester Novice
24. maj 2003 - 22:44 #7
eagleeye.

Har du et andet bud?
Avatar billede vester Novice
24. maj 2003 - 22:45 #8
ellebaek

Så virker den jo heller ikke
Avatar billede vester Novice
24. maj 2003 - 22:50 #9
Er der andre bud?
Avatar billede eagleeye Praktikant
24. maj 2003 - 22:50 #10
Et bud er som her beskrevet, http://searchdatabase.techtarget.com/ateQuestionNResponse/0,289625,sid13_cid527493_tax285649,00.html

At lave en Query/Forsørgelse som vælger distict brugerID i din database.:

nanvet kunne være:  DbrugerID
Og SQL'en for den:  SELECT distinct brugerID FROM Statistik

Så kan du fra din ASP side lave en SQL sætning som denne:

SQL = "SELECT Count(*) as antal FROM DbrugerID"
Avatar billede eagleeye Praktikant
24. maj 2003 - 23:01 #11
Jeg har også fundet denne, og det kan tilsyneladne laves i en SQL fr ASP siden
http://www.experts-exchange.com/Databases/MS_Access/Q_10157299.html


Så dan her:

SQL = "SELECT COUNT(A.[brugerID]) AS antal "
SQL = SQL & "FROM (SELECT [brugerID] FROM [tabelNavn] GROUP BY [brugerID]) AS A;"
Avatar billede eagleeye Praktikant
24. maj 2003 - 23:03 #12
Så din kode bliver, som her:
Jeg har også rettet et par små fejl, blandtandet blev connection overskrevet som recordset:


<%
set ObjConn = Server.CreateObject ("ADODB.Connection")
strConnDriver="Driver={Microsoft Access Driver (*.mdb)};"
strConnPath="DBQ=" & Server.MapPath ("./db/Statistik.mdb")
objConn.Open strConnDriver & strConnPath
set RS = Server.CreateObject ("ADODB.RecordSet")
%>
<table border="0" Cellpadding="0" Cellspacing="0" width="600px">
<%
strSQL = "SELECT COUNT(A.[brugerID]) AS antal "
strSQL = strSQL & "FROM (SELECT [brugerID] FROM [Statistik] GROUP BY [brugerID]) AS A;"
set rs = conn.execute(Strsql)
%>

    <TR>
        <td colspan="8" Bgcolor="#bababa" align="right" width="100%"><%=rs("antal")%></td>
    </tr>

<%
objConn.Close
set RS = nothing
set objConn = nothing
%>
</table>
Avatar billede eagleeye Praktikant
24. maj 2003 - 23:07 #13
Så lige en fejl mere, denne linje

set rs = conn.execute(Strsql)

Skal være som her:

set rs = objConn.execute(Strsql)
Avatar billede vester Novice
24. maj 2003 - 23:10 #14
Super. Det var netop det den skulle

Tak
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