Avatar billede icedox Nybegynder
16. marts 2004 - 15:26 Der er 39 kommentarer og
2 løsninger

distinct selec * kun 1 gang

Hej!
Jeg har en mailingsliste, hvor jeg kun vil se hvert
navn 1. gange.
Problem med sql.
sql="SELECT DISTINCT [navn] ,* from nyhedsmail order by postnr DESC"

virker ikke for mig, efter som et navn kommer 4 gange.
Nogen med et bud !
Avatar billede erikjacobsen Ekspert
16. marts 2004 - 15:29 #1
Men
  sql="SELECT DISTINCT [navn] from nyhedsmail order by postnr DESC"
giver dem vel kun een gang
Avatar billede fennec Nybegynder
16. marts 2004 - 15:30 #2
distinct gælder på alle valgte kolonner hvilket betyder at den næppe for nogen betydning i denne select. Prøv kun at medtage de felter du skal bruge.
Avatar billede icedox Nybegynder
16. marts 2004 - 15:31 #3
erik: Ja der var du dejlig hurtig,,, men
Microsoft JET Database Engine error '80004005'

ORDER BY clause (postnr) conflicts with DISTINCT.
Avatar billede erikjacobsen Ekspert
16. marts 2004 - 15:33 #4
Ja, det er rigtigt, for hvad betyder det med "order by postnr", hvis eet navn
har flere postnumre. Hvad er det egentlig du vil?
Avatar billede terry Ekspert
16. marts 2004 - 15:34 #5
sql="SELECT DISTINCT [navn] ,* from nyhedsmail order by Navn DESC"

posnr is NOT in the result!
Avatar billede terry Ekspert
16. marts 2004 - 15:35 #6
DISTINCT will return records which are distinct, so if there are more than one field in th eoutput ALL must be distinct
Avatar billede terry Ekspert
16. marts 2004 - 15:35 #7
.
Avatar billede icedox Nybegynder
16. marts 2004 - 15:40 #8
terry : order by navn -duer ikke-
Nogle navner kommer 4 gange...
det skal være order by postnr. og hvert navn 1 gange.
Avatar billede erikjacobsen Ekspert
16. marts 2004 - 15:41 #9
Hvad vil du have der skal ske, hvis eet navn har flere postnumre?
Avatar billede icedox Nybegynder
16. marts 2004 - 15:42 #10
erik: Ja så må det godt komme.
Men det er vel ikke alm. at man bor på 2 postnr. ?
Avatar billede fennec Nybegynder
16. marts 2004 - 15:42 #11
sql="SELECT DISTINCT [navn], postnr from nyhedsmail order by postnr DESC"
Avatar billede fennec Nybegynder
16. marts 2004 - 15:43 #12
... da det lader til du kun skal bruge navn og postnr
Avatar billede erikjacobsen Ekspert
16. marts 2004 - 15:44 #13
så er det vel fennecs forslag. Men man kan vel have to der hedder Hans Hansen, og
som bor i forskellige byer.
Avatar billede icedox Nybegynder
16. marts 2004 - 15:45 #14
fennec:
ADODB.Recordset error '800a0cc1'
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
Avatar billede icedox Nybegynder
16. marts 2004 - 15:47 #15
erik: Ja, der kunne være et problem..
Avatar billede erikjacobsen Ekspert
16. marts 2004 - 15:47 #16
bruger du andre felter end navn og postnr?
Avatar billede icedox Nybegynder
16. marts 2004 - 15:48 #17
så må det være order by emailadr.
Avatar billede erikjacobsen Ekspert
16. marts 2004 - 15:48 #18
Ok, men jeg mente: "Men man kan vel have to der hedder Hans Hansen, og
som bor i samme by".
Det med de forskellige byer er jo klaret.

Så spørgsmålet er igen: hvad er det du vil?
Avatar billede icedox Nybegynder
16. marts 2004 - 15:49 #19
erik : navn, postnr, city, emailadr, klub
Avatar billede icedox Nybegynder
16. marts 2004 - 15:50 #20
erik: Jeg vil = udtræk fra DB, hvor den samme kommer kun én gang
Avatar billede fennec Nybegynder
16. marts 2004 - 15:54 #21
Så er det....

sql="SELECT DISTINCT [navn], postnr, city, emailadr, klubfrom nyhedsmail order by postnr DESC"
Avatar billede fennec Nybegynder
16. marts 2004 - 15:55 #22
manglede lige et mellemrum....

sql="SELECT DISTINCT [navn], postnr, city, emailadr, klub from nyhedsmail order by postnr DESC"
Avatar billede icedox Nybegynder
16. marts 2004 - 16:05 #23
fennec: Nogle navne kommer 4 gange.
Avatar billede fennec Nybegynder
16. marts 2004 - 16:07 #24
men postnr, city, emailadr eller klub er forskellig fra hinanden.
Avatar billede icedox Nybegynder
16. marts 2004 - 16:14 #25
fennec:  njahhh  e-mailadr. er den samme.
Avatar billede icedox Nybegynder
16. marts 2004 - 16:19 #26
Der er personer i hoved-klubben, der får nyhedsmail fra alle under-klubber,
men de har stadigvæk kun et navn og en e-mailadr. op til flere steder.
Order by postnr. tror jeg ville være fint, men navn og e-mailadr. skal kun komme én gange.
Avatar billede michael_stim Ekspert
16. marts 2004 - 16:25 #27
Det havde väret lettere hvis du havde lavet databasen på en anden måde (delt tabellerne op)
Og så givet namn et unikt nummer.
Avatar billede icedox Nybegynder
16. marts 2004 - 16:35 #28
michael: Ja, sikkert, men vi opgiver ikke vel.
Vi er Eksperter...  :)
Avatar billede fennec Nybegynder
16. marts 2004 - 16:35 #29
>>icedox

men nogle af de andre felter er forskellig.....
Prøv at skrive alle valgte felter ud for alle poster i dit recordset. Så skulle du gerne kunne se hvor der er forskelle....
Avatar billede icedox Nybegynder
16. marts 2004 - 16:44 #30
fennec : Ja sådan var det, men nu vil altså lave det om til at jeg ser kun et navn 1 gange.
Forskellen er at der er flerre personer som melder sig til 5 forskellige klubber.
Det hele ligger i 1 tabel.
Avatar billede terry Ekspert
16. marts 2004 - 17:08 #31
can we see an example of your data?
If each name has a different postalcode then you CAN NOT get a DISTINCT name!

EXAMPLE:
If I have these values in my table
Terry 7000
icedox 6000
Terry 7100
Then "SELECT DISTINCT Navn, Postnr From nyhedsmail" will give
Terry 7000
icedox 6000
Terry 7100

If I use
Then "SELECT DISTINCT Navn From nyhedsmail" will give

Terry
icedox

So you have to decide what you want :o)
Avatar billede terry Ekspert
16. marts 2004 - 17:10 #32
If any fields are different in each record then they are regarded as NOT DISTINCT!
So if you want to select DISTINCT records then you MUST only select the fields you know are DISTINCT.
Avatar billede icedox Nybegynder
16. marts 2004 - 18:04 #33
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
Avatar billede icedox Nybegynder
16. marts 2004 - 18:05 #34
each name has the same postalcode
Avatar billede terry Ekspert
16. marts 2004 - 22:29 #35
"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)
Avatar billede icedox Nybegynder
17. marts 2004 - 07:54 #36
terry: Name=navn SELECT DISTINCT [Navn], emailadr, Postnr From nyhedsmail
ADODB.Recordset error '800a0cc1'
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
Avatar billede fennec Nybegynder
17. marts 2004 - 08:09 #37
bruger du "klub" senere i din kode. f.eks klub=rs("klub")??? For der kan den fejl også komme.
Avatar billede icedox Nybegynder
17. marts 2004 - 08:36 #38
fennec : Javel. Så ved jeg det. Har afprøvet det og det virker :)
Tak til alle.
Avatar billede icedox Nybegynder
17. marts 2004 - 08:54 #39
fennec : Prøv at sende et -Svar-
Avatar billede fennec Nybegynder
17. marts 2004 - 09:12 #40
ok
Avatar billede terry Ekspert
17. marts 2004 - 19:15 #41
tak :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