Avatar billede kennethjohnsen Nybegynder
20. februar 2009 - 08:55 Der er 2 kommentarer og
1 løsning

Eliminering af rækker der går igen, men i forskellige kolonner

Jeg har en tabel med data for vandledninger.
Den indeholder felterne "ledningsnavn", "fra", og "til", hvor "fra" og "til" er de to brønde som ledningen går imellem.

Problemet er at det system hvor jeg har data fra, har lagret hver ledning to gange, f.eks.:

ledning1, brønd1, brønd2
ledning1, brønd2, brønd1

Altså, ledning 1 går fra brønd1 til brønd2, men også fra brønd2 til brønd1.

Er der en måde jeg kan eliminere de "ekstra" rækker?

Jeg er ude i noget med at lave en cursor, der looper igennem, og putter over i en ny tabel, samtidigt med at den checker på om den "omvendte" række allerede er i den nye tabel (og den altså ikke skal gemme den række den er i gang med).

Men der må være en nemmere måde.
Avatar billede teepee Nybegynder
20. februar 2009 - 09:07 #1
Kender du intersection? Nu ved jeg ikke om du benytter Oracle eller SQL server eller hvad, men hvis du tager:

select ledning1 l1, brønd1 b1, brønd2 b2
intersect
select ledning1 l1, brønd2 b1, brønd1 b2

så får du alle rækker som forekommer to gange. Se evt. på google hvordan man skriver det hvis det er SQL server eller noget andet
Avatar billede arne_v Ekspert
22. februar 2009 - 03:03 #2
Har du et id felt ?

Hvis ja så må du kunne:

DELETE FROM tabel
WHERE id IN (SELECT t2.id FROM tabel t1,tabel t2 WHERE t1.navn=t2.navn AND t1.fra=t2.til AND t1.til=t2.fra AND t1.fra < t2.fra)
Avatar billede arne_v Ekspert
22. februar 2009 - 03:03 #3
Som altid: når det drejer sig om DELETE så test grundigt før du går igang med den rigtige database.
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