Avatar billede lund_dk Praktikant
13. juni 2006 - 22:05 Der er 14 kommentarer og
1 løsning

Udskriv kun bruger EN gang

Jeg, jeg har denne hvor jeg udskriver en liste over seneste besøg i en profil, men denne her tager så ikke høje for at hvis en bruger har besøgt en profil flere gange, eks 2 gange efter hinanden, så udskrives brugeren også 2 gange,

Så hvordan retter jeg det til,således visitorid kun udskrives EN gang..
<%
    strVisitors = "select top 10 * from ProfileVisitors where profileID = " & ID & " order by visited desc"
    Set RSVisitors= conn.Execute(strVisitors)
    if rsVisitors.EOF or rsVisitors.BOF then
    response.write "<tr><td>Ingen besøg.</td></tr>"
    else

    While Not RSVisitors.EOF
    %>
    <tr>
        <td style="height:18px;"><a href="./?S=6&M=Profile&ID=<%= RSVisitors("ID")%>"><%=GetUsernameSex(RSVisitors("visitorid"))%></a></td>
    </tr>
    <%
    RSVisitors.MoveNext
    Wend
    end if
    Set RSVisitors=Nothing
    %>
Avatar billede flashit Nybegynder
13. juni 2006 - 22:07 #1
kan du ikke bruge dette:

The SELECT DISTINCT Statement
The DISTINCT keyword is used to return only distinct (different) values.

The SELECT statement returns information from table columns. But what if we only want to select distinct elements?

With SQL, all we need to do is to add a DISTINCT keyword to the SELECT statement:

Syntax
SELECT DISTINCT column_name(s)
FROM table_name
Avatar billede flashit Nybegynder
13. juni 2006 - 22:08 #2
select DISTINCT top 10 * from ProfileVisitors where profileID = " & ID & " order by visited desc
Avatar billede lund_dk Praktikant
13. juni 2006 - 22:14 #3
flashit:
Får godt nok en fejl der lyder:

Microsoft VBScript runtime error '800a01a8'
Object required: ''
Avatar billede flashit Nybegynder
13. juni 2006 - 22:19 #4
i sql linien?
Prøv at skrive en sql uden variabler
select DISTINCT from ProfileVisitors
Avatar billede lund_dk Praktikant
13. juni 2006 - 22:22 #5
Var min fejl,kom til at sætte ' foran denne
Set RSVisitors= conn.Execute(strVisitors)

select DISTINCT top 10 * from ProfileVisitors where profileID = " & ID & " order by visited desc

Men tager jeg denne,så udskriver den stadig dubletter af brugere

såprøvede jeg select DISTINCT VisitorID top 10 * from ProfileVisitors where profileID = " & ID & " order by visited desc

Men denne giver fejl
Avatar billede flashit Nybegynder
13. juni 2006 - 22:26 #6
hvad med:
select DISTINCT top 10 * VisitorID from ProfileVisitors where profileID = " & ID & " order by visited desc
Er ikke sikker på om der skal en * på når du angiver kolonne navn
Avatar billede flashit Nybegynder
13. juni 2006 - 22:27 #7
Giver denne også dubletter?
select DISTINCT VisitorID from ProfileVisitors
Avatar billede lund_dk Praktikant
13. juni 2006 - 22:30 #8
Begge dele giver denne fejl:

Syntax error (missing operator) in query expression 'visitorID top 10 *'.
Avatar billede flashit Nybegynder
13. juni 2006 - 22:38 #9
Fundet her på exp.

terry : each name has a different postalcode
so SQL can not do it ?
Data:
Name    emailadr  postnr  klub
Icedox  ice@      5000    Max
Icedox  ice@      5000    Min
Icedox  ice@      5000    MaR
Icedox  ice@      5000    MaU

"SELECT DISTINCT [Name], emailadr, Postnr From nyhedsmail"

This will give you

Icedox  ice@      5000

but if you include klub, then you will get ALL records because the values in klub are different (NOT DISTINCT)

kan det være det der er problemet? da du jo via top 10 *, medtager alle kolonner
Avatar billede flashit Nybegynder
13. juni 2006 - 22:40 #10
hvis du har en kolonne med et tidsstempel, så er de jo ikke ens, eller?
Avatar billede flashit Nybegynder
13. juni 2006 - 22:55 #11
SELECT DISTINCT top 10 visited, visited2, visited3
FROM ProfileVisitors
where profileID = " & ID & "
order by visited desc
Avatar billede flashit Nybegynder
13. juni 2006 - 23:22 #12
Using the DISTINCT keyword
To select ALL values from the column named "Company" we use a SELECT statement like this:

SELECT Company FROM Orders

"Orders" table

Company OrderNumber
Sega 3412
W3Schools 2312
Trio 4678
W3Schools 6798

Result

Company
Sega
W3Schools
Trio
W3Schools

Note that "W3Schools" is listed twice in the result-set.

To select only DIFFERENT values from the column named "Company" we use a SELECT DISTINCT statement like this:

SELECT DISTINCT Company FROM Orders

Result:

Company
Sega
W3Schools
Trio

Now "W3Schools" is listed only once in the result-set.
Avatar billede lund_dk Praktikant
14. juni 2006 - 10:13 #13
Hmm, syntes nu jeg har prøvet alt - intet vil virke
Avatar billede lund_dk Praktikant
14. juni 2006 - 22:38 #14
Måske en anden der kan hjælpe her?
Avatar billede lund_dk Praktikant
15. juni 2006 - 22:30 #15
nå lukker
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