Avatar billede larsomania Nybegynder
18. december 2007 - 16:00 Der er 5 kommentarer og
1 løsning

Fjerne dubletter automatisk

jeg har en databasetabel som jeg ønsker at danne en ny tabel ud fra hvor en række dublet-records skal fjernes. De er ikke 100% dubletter data ID er forskellig for hver række - men fx:

select depdate, flight, dep, arr, segnr
from segmentrep
where status='OK' and ordernr='700716'
order by flight

Giver dette:

Departure              Flight  Dep    Arr    Segnr
2007-11-09 00:00:00.000    AZ0126    MXP    CPH    8
2007-11-09 00:00:00.000    AZ0126    MXP    CPH    12
2007-11-05 00:00:00.000    AZ0129    CPH    MXP    5
2007-11-05 00:00:00.000    AZ0129    CPH    MXP    9


Segnr 8+12 er identiske og 8 eller 12 skal fjernes, det samme med 5+9.

Er der nogen gode forslag til en query der fx kun giver 8+5 (dvs udelader dubletterne)? Er ved at bli' lettere gråhåret over at gruble over den...
Avatar billede the_party_dog Nybegynder
18. december 2007 - 16:12 #1
Jeg ville lave noget GROUP BY til at snyde med, hvor du bare bruger MIN() aggreat funktionen:

SELECT DEPDATE, FLIGHT, DEP, ARR, MIN(SEGNR) AS SEGNR
FROM segmentrep
WHERE status='OK' AND ordernr='700716'
GROUP BY DEPDATE, FLIGHT, DEP, ARR
ORDER BY FLIGHT
Avatar billede arne_v Ekspert
19. december 2007 - 02:39 #2
Burde en:

select distinct depdate, flight, dep, arr, segnr
from segmentrep
where status='OK' and ordernr='700716'
order by flight

ikke klare det ?
Avatar billede the_party_dog Nybegynder
19. december 2007 - 07:21 #3
Arne_v: Giver det ikke 2 rækker, en række med SEGNR 8 og en med SEGNR 12? Han beder os om at fjerne den ene eller anden af de 2 værdier, kan en distinct klare det?

Kan være det er alt for tidligt til mig lige nu, henter noget kakao :o)

Larsomania, hvad siger du til det?
Avatar billede larsomania Nybegynder
19. december 2007 - 08:37 #4
PartyDog> Det er stadig lidt tidligt ;-) Men du har ret - distinct giver nemlig to rækker da de jo netop ER forskellige ud fra segnr.

Dit forslag med group by og så min() fungerer til gengæld.

Post et svar så er pointene dine!
Avatar billede the_party_dog Nybegynder
19. december 2007 - 09:15 #5
Jamen så er jeg glad for at jeg kunne hjælpe :o)
Avatar billede larsomania Nybegynder
19. december 2007 - 09:23 #6
Yes - det var super cool. Tak for hjælpen!
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