Avatar billede mailand Nybegynder
16. juni 2004 - 15:05 Der er 14 kommentarer

DISTINCT og andre værdier

Undrer mig bare lige lidt over, hvordan jeg kan nøjes med at udvælge distinct på kun én kolonne, samtidig med, jeg får andre felter med...

- og op mod access...

SELECT DISTINCT column ...

Men hvordan får jeg andre felter med, som ikke skal være distincte.

#Mailand
Avatar billede skwat Praktikant
16. juni 2004 - 15:06 #1
select distinct(felt1), felt2 ....
Avatar billede mailand Nybegynder
16. juni 2004 - 15:11 #2
ja... det troede jeg også... og måske det er, men det virker ikke her... :(

SELECT DISTINCT(varenr2), varenr FROM ...
returnerer ikke det samme som bare
SELECT DISTINCT(varenr2) FROM ...

Den øverste tager flere records med... :-(

#Mailand
Avatar billede montago Praktikant
16. juni 2004 - 15:42 #3
i know i know i knwo !!

strSQL = "Select distinct(vare1) from ...."
Set RS = conn.execute(strSQL)
Do while not RS.EOF
  StrSQL2 = "Select * from ... where vare1 = '" & RS("vare1") & "'"
  set rs2 = conn.execute(StrSQL2)
loop
Avatar billede montago Praktikant
16. juni 2004 - 15:43 #4
rs.movenext selvfølgelig !!!
Avatar billede mailand Nybegynder
16. juni 2004 - 15:50 #5
hmm... ja, det er jo selvfølgelig altid en mulighed, men det skaber jo kraftig gang db trafik, som jeg helst vil undgå. Jeg var mest interesseret i en løsning, hvor jeg kun skulle kalde basen 1 gang.

#Mailand
Avatar billede skwat Praktikant
16. juni 2004 - 15:53 #6
De skal lave en agregeret funktion på de andre felter, eks. max(datofelt) ol.
Avatar billede montago Praktikant
16. juni 2004 - 15:54 #7
du kan jo groupe...
Avatar billede skwat Praktikant
16. juni 2004 - 15:55 #8
prøv lige at giv lidt tabel struktur
Avatar billede montago Praktikant
16. juni 2004 - 15:55 #9
yup... det ville hjælpe !
Avatar billede fennec Nybegynder
16. juni 2004 - 15:59 #10
Det kan desvære ikke lade sig gøre. distinct virker på alle felter, som bliver selected.

Enten gør du det på montago's måde, ellers kan du code dig ud af det, men det er besværlig, også skal du sortere efter vare1 som første kriterie. Jeg kan godt komme med et lille eks. hvis det har interesse....
Avatar billede mailand Nybegynder
16. juni 2004 - 16:01 #11
fennec:
ja, har også læst lidt rundt omkring, det nok ikke helt kan lade sig gøre, som jeg gerne ville. havde bare håbet på, man måske kunne lave noget dobbelt select eller et eller andet.
et eksempel må du da gerne give... :o)
Avatar billede fennec Nybegynder
16. juni 2004 - 16:19 #12
tempID = ""
set rs = conn.execute("select bruger.id, bruger.name, familie.ftype, familie.name as fname from bruger join familie on familie.bID=bruger.id order by bruger.id")
do while not rs.eof
  if tempID <> rs("id") then
    response.write "<hr>Person: "& rs("name") & "<br>Dennes familie:"
  else
    response.write "<li>"rs("ftype") & " "& rs("fname") & "</li>"
  end if
  tempID = rs("id")
  rs.MoveNext
loop

bruger siger sig selv
familie siger også sigselv (ftype kan være far, mor, søster....)

Nu har jeg holdt udskrivningen simpel for forståelsen skyld. Det bliver rigtigt indviklet, når man har tags som skal afsluttes (som en tabel)

Det handler om, at man manuelt tjekker, om man har fat i et nyt id, og hvis man har laver noget specielt.
Avatar billede skwat Praktikant
16. juni 2004 - 16:25 #13
mailand, giv noget struktur jeg er sikker på at den kan løses. eks.
felt1 felt2
1    hans
2    peter
1    jens

Hvis du så lever select distinct på felt 1, vil du så have jens eller hans som felt to i dit resolvset?
fennec, som jeg forstår det er det ikke de samme problem der bliver løst.
Avatar billede mailand Nybegynder
07. juli 2004 - 12:55 #14
... undskyld forsinkelsen... jeg har løst problemet på en anden måde, men tak for forslagene.

God sommer.

#Mailand
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