Avatar billede oasen Nybegynder
06. januar 2003 - 00:42 Der er 20 kommentarer og
2 løsninger

Select Distinct

Jeg kan ikke få noget som helst til at virke lige nu.

"Select Distinct Count(BrugerID) As Antal From billeder Where BilledeID Between 23 And 45"

Jeg skal såmænd bare have antallet af unikke BrugerID's, men får i stedet returneret antallet af alle BilledeID's.

(Der kan godt optræde flere af de samme BrugerID's og BilledeID's, men posterne vil altid være unikke)
Avatar billede hossein Nybegynder
06. januar 2003 - 01:14 #1
Prøv den:
SELECT COUNT(DISTINCT BrugerID) AS Antal, BilledID FROM table billeder BilledeID Between 23 And 45 group by BilledeID"
Avatar billede arnvig Nybegynder
06. januar 2003 - 01:14 #2
ja, du får hvad du beder om.

Men det du gerne ville vide var antallet(count) af distincte brugerid
"Select Count(Distinct BugerId) As Antal From billeder Where bla..bla..."
Avatar billede hossein Nybegynder
06. januar 2003 - 01:16 #3
FROM table billeder = from billeder
Avatar billede arnvig Nybegynder
06. januar 2003 - 01:16 #4
Hossein: Din løsning giver antallet af BrugerIds pr BilledId,
        det var vist ikke det han ville opnå ?
Avatar billede hossein Nybegynder
06. januar 2003 - 01:18 #5
Rigtig, han kan groupere dem.
Avatar billede arnvig Nybegynder
06. januar 2003 - 01:18 #6
hossein: Du mangler vist også et "Where"
Avatar billede hossein Nybegynder
06. januar 2003 - 01:23 #7
rigtig, det er sent på natten, jeg sover :) men hvis man goupere så man har rigtige antal for hver unuke ID, synes jeg ellers får man kun totale antal
Avatar billede oasen Nybegynder
06. januar 2003 - 02:57 #8
COUNT(DISTINCT BrugerID) prøvede jeg til at starte med, da jeg skulle mene, det gav det rigtige output. Men i stedet fik jeg en fed fejlmeddelelse, og så blev jeg forvirret!
Avatar billede hossein Nybegynder
06. januar 2003 - 14:10 #9
Hvad er det for en fejl du får?
Avatar billede oasen Nybegynder
06. januar 2003 - 19:15 #10
Syntax Error - Så snart Distinct flyttes ind i parantesen, brokker den sig...
Avatar billede hossein Nybegynder
06. januar 2003 - 21:18 #11
Prøv den her måde:
SELECT Count(BrugerID) AS antal
FROM (SELECT BrugerID FROM billeder Group By BrugerID)
Avatar billede oasen Nybegynder
07. januar 2003 - 12:59 #12
Desværre - der bliver stadig returneret et meget højt antal !
Avatar billede dr-data Nybegynder
07. januar 2003 - 16:19 #13
kan du ikke nøjes med dette ???:

"Select Distinct Count(BrugerID) As Antal From billeder"
eller
"Select Count(Distinct BrugerID) As Antal From billeder"
Avatar billede dr-data Nybegynder
07. januar 2003 - 16:27 #14
nah
Avatar billede dr-data Nybegynder
07. januar 2003 - 16:33 #15
maybe: SELECT Count(BrugerID) AS Antal
FROM (SELECT DISTINCT BrugerID
FROM billeder);

virker i hvertfald i access, ud over at den skriver:

SELECT Count([BrugerID]) AS Antal
FROM [SELECT DISTINCT [BrugerID]
FROM Tabel1]. AS [%$##@_Alias];

/Vania ;-)
Avatar billede hossein Nybegynder
07. januar 2003 - 21:09 #16
Hvis den ikke virker så er det muligt at det er et eller andet sted som skaber problemet:
SELECT Count(BrugerID) AS antal
FROM (SELECT BrugerID FROM billeder Group By BrugerID)

som et forslag, læg flere linier af din code?
Avatar billede arnvig Nybegynder
07. januar 2003 - 23:54 #17
Oasen: Hvilken database er det ?

Hvor mange rækker har du ialt ?
Hvilket resultat får du ?
Avatar billede oasen Nybegynder
08. januar 2003 - 08:07 #18
Access - omkring 60000 rækker.

Det sjove er, at når jeg udvælger BrugerID og løber rækkerne igennem, får jeg returneret det rigtige antal.
Avatar billede oasen Nybegynder
08. januar 2003 - 08:14 #19
I kan godt lige få hele linien, hvis det kan være en hjælp. Ellers må jeg jo specificere tabelopsætningen...

Set rs = Conn.Execute("Select Count(BrugerID) As Antal From (Select Distinct BrugerID, BilledeID, VistPic FROM brugerpicstab) Where BilledeID Between 23 And 45 And VistPic = 1 Group By BrugerID")
Avatar billede hossein Nybegynder
08. januar 2003 - 18:38 #20
jeg vil lave en test, jeg gætter bare at dette skyldes between... and... and...
helst skal de ha' () sådan som man adskiler hver for sig, jeg vender tilbage eller prøv selv.
Avatar billede hossein Nybegynder
08. januar 2003 - 21:59 #21
Dette giver dig antallet af record som gentages en gang i din kriterie (som distinct):

<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("streetracers.dk.mdb")
Conn.Open DSN

set rs = server.CreateObject("ADODB.RECORDSET")

strSQL= "Select Count(BrugerID) AS ANTAL from"
strSQL = strSQL & "(Select BrugerID FROM search where"
strSQL = strSQL & "(BilledeID Between 23 And 45) and vistpic = 1 Group By BrugerID)"

rs.Open strSQL, conn

Do Until rs.EOF

%>       

<a href=<%=rs("ANTAL")%>><%=rs("ANTAL")%></a><br>

<%

rs.MoveNext
Loop

rs.Close
Set rs = Nothing
%>
</BODY>
</HTML>

Tabel navn, og database navn skal ændres til din egen.
Avatar billede oasen Nybegynder
10. januar 2003 - 22:40 #22
Virker stadig ikke. Jeg laver lige et billede af, hvad jeg vil. Så kan du evt. få lidt flere points..
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