Avatar billede jangravgaard Nybegynder
06. december 2002 - 09:57 Der er 12 kommentarer og
1 løsning

Select distinct virker ikke

Hej

Ved udtræk vil jeg sørge for at et enkelt felt ikke indeholder samme tal.

Query:

SELECT DISTINCT FreightBill.OrdreNr, FreightBill.BatchId, FreightBill.prodkode, FreightBill.antkoll1, FreightBill.RegisteredTime, FreightBill.Kollinummer
FROM TransFleet.dbo.FreightBill FreightBill
WHERE (FreightBill.RegisteredTime>{ts '2002-09-30 00:00:00'} And FreightBill.RegisteredTime<{ts '2002-12-01 00:00:00'})
ORDER BY FreightBill.OrdreNr DESC

Return :

2020985    2002-11-29 20:19:26,467    02
2020985    2002-11-29 20:19:26,467    02
2020985    2002-11-29 20:19:26,467    02
2020985    2002-11-29 20:19:26,467    02

Det holder jo ikke helt !!

Nogle gode ideer ??
Avatar billede medions Nybegynder
06. december 2002 - 09:59 #1
Det er fordi DISTINCE kun vil virke på ét felt...!

//>Rune
Avatar billede ocp Nybegynder
06. december 2002 - 10:01 #2
Distinct sørger for at der kun findes præcis en forekomst af en bestemt kombination af ALLE felterne i SELECT.
Avatar billede ocp Nybegynder
06. december 2002 - 10:02 #3
Der ER åbenbart en forskel i dine data - ellers ville de 4 rækker du viser blive "slået sammen" til 1.
Avatar billede arnvig Nybegynder
06. december 2002 - 10:11 #4
Distinct giver unike værdier for det samlede sæt af værdier i selecten.

Prøv at skrive hvad det er du vil opnå, så kan vi komme med en løsning.
Avatar billede kichian Nybegynder
06. december 2002 - 10:20 #5
Det pudsige er jo nok at du selecter 6 felter, men at du kun vise 4.
Selvom de 2 manglende felter er NULL burde dit eksempel kun være en linje.
Avatar billede jangravgaard Nybegynder
06. december 2002 - 10:25 #6
Jeg viser dog kun 3 felter og det er fordi det fylder meget.
2020985    2002-11-29 20:19:26,467    02 1 2002-11-29 18:13:36,000    065041388197
2020985    2002-11-29 20:19:26,467    02 1 2002-11-29 18:13:36,000    065041388203
2020985    2002-11-29 20:19:26,467    02 1 2002-11-29 18:13:36,000    065041388210
2020985    2002-11-29 20:19:26,467    02 1 2002-11-29 18:13:36,000    065041388227

Nu er der 6 felter. Det jeg vil opnå er at frasortere dubletter af ordrenummeret (OrderNr)
Avatar billede kichian Nybegynder
06. december 2002 - 10:30 #7
Fjern FreightBill.Kollinummer og det vil virke.
Avatar billede ocp Nybegynder
06. december 2002 - 10:31 #8
Hvorfor fjerner du ikke bare den sidste kolonne fra dit select? Du bruger den jo ikke til noget.
Hvis du SKAL bruge den kolonne bliver du nødt til at håndtere visningen af data fra din kode (T-SQL er grundlæggende ikke lavet til at formattere data med). Det kan gøres ved at løbe recordset'et igennem og hele tiden gemme en variabel, PrevOrdreNr og så kun vise nummeret hvis det er forskelligt fra denne variabel.
Avatar billede jangravgaard Nybegynder
06. december 2002 - 10:35 #9
Hvilken kolonne snakker vi om ?
Jeg skal bruge de valgte kolonner bagefter
Avatar billede ocp Nybegynder
06. december 2002 - 10:44 #10
Et lille eksempel der laver HTML-kode:

dim PrevOrdreNr as long
dim sHTML as string

sHTML = sHTML & "<TABLE>"
while not rs.eof
  sHTML = sHTML & "<TR>"
  sHTML = sHTML & "<TD>"
  if PrevOrdreNr = rs.fields("OrdreNr").value then
    PrevOrdreNr = rs.fields("OrdreNr").value
    sHTML = sHTML & PrevOrdreNr
  else
    sHTML = sHTML & "&nbsp;"
  end if
  sHTML = sHTML & "</TD>"
  sHTML = sHTML & "<TD>"
    sHTML = sHTML & rs.fields("RegisteredTime").value
  sHTML = sHTML & "</TD>"

  '... og så videre

  sHTML = sHTML & "</TR>"
  rs.movenext
wend
sHTML = sHTML & "</TABLE>"
Avatar billede jangravgaard Nybegynder
06. december 2002 - 10:49 #11
Nu er det jo ikke et spg om html.....kun om sql
Avatar billede ocp Nybegynder
06. december 2002 - 11:10 #12
Nej, men min pointe er jo netop at SQL ikke er egnet til at lave den slags formattering med.
Avatar billede jangravgaard Nybegynder
06. december 2002 - 11:10 #13
lukker og slukker
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
Computerworld tilbyder specialiserede kurser i database-management

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