Oprettet tor. d. 28. februar 2008 kl. 12:20:12

bsr0809
bsr0809 (11.545 point. Point ude: 1.180)

Fjernelse af dubletter undtagen dublet 1

HASTER HASTER!
Jeg har en DB med en masse adresser der findes dubletter af. Hvordan kan jeg nemt fjerne disse dubletter?
Mit eget forslag var blot at lave en simple dublet forespørgelse, og derefter give dem f.eks. et 1 tal som status kode. Mit problem er at det den første dublet skal bibeholdes.

Nogen der kan fortæller mig hvordan jeg kan lave en forespørgelse som reagerer på følgende måde:

Status kode - Vej navn
0 - Roskildevej 143
1 - Roskildevej 143
1 - Roskildevej 143
1 - Roskildevej 143
0 - Finsensvej 4
1 - Finsensvej 4

osv.
Det gør ikke noget om den tæller 1, 2, 3, 4, 1, 2 - så kan jeg blot lave en ny forespørgelse og bede om alt under 2.

Da opgaven virkelig haster så er der mange points i den.

Skrevet tor. d. 28. februar 2008 kl. 12:57:19| #1

jensen363
jensen363 (28.301 point)
Hvordan finder du ud af hvikle rækker der er dubletter og hvilke der er den/de række(r) der skal slettes ?

Skrevet tor. d. 28. februar 2008 kl. 12:58:04| #2

jensen363
jensen363 (28.301 point)
Er statuskode 0 den/de række(r) du vil beholde ?

Skrevet tor. d. 28. februar 2008 kl. 13:13:11| #3

bsr0809
bsr0809 (11.545 point)
Ja 0 er f.eks. dem jeg vil beholde. Jeg beyntter en dublet forspøgelse ganske normalt hvor der blot fremkommer en liste over alle poster med dubletter.

Skrevet tor. d. 28. februar 2008 kl. 13:17:31| #4

jensen363
jensen363 (28.301 point)
0 er det en værdi du har i tabellen

I givet fald kan du slette alle der er forskellig fra den værdi :

DELETE Tabel1.[Status kode], Tabel1.[Vej navn]
FROM Tabel1
WHERE (((Tabel1.[Status kode])<>0));

Skrevet tor. d. 28. februar 2008 kl. 13:21:39| #5

bsr0809
bsr0809 (11.545 point)
Ja det er jeg helt med på, og det er ingen problemer for mig at få slettet posterne. Problemet er at få dem givet statuskoder.

Skrevet tor. d. 28. februar 2008 kl. 13:26:37| #6

spg
spg (42.471 point)
www.parodux.com
Lav et indeks så du får unikke poster, evt. et indeks indeholdende flere felter!~)

Skrevet tor. d. 28. februar 2008 kl. 13:30:37| #7

kimiwan
kimiwan (29.057 point)
prøv flg...

1. opret en kolonne med unikke id værdier ([ID]), hvis du ikke allerede har det

2. delete from tabel1 where id not in (select min(id) from tabel1 group by [vej navn])

/Kim

Skrevet tor. d. 28. februar 2008 kl. 13:32:28| #8

bsr0809
bsr0809 (11.545 point)
Hej igen.
Mit problem er IKKE at få dem slettet da dette kun skal ske en gang. Mit problem er at få givet en status kode, så jeg kan sorterer hvad der skal slettes og ikke skat.

Skrevet tor. d. 28. februar 2008 kl. 13:34:55| #9

kimiwan
kimiwan (29.057 point)
ok, så kan vi da rette den lidt til... :)

1. opret en kolonne med unikke id værdier ([ID]), hvis du ikke allerede har det

2. update tabel1 set [status kode]=0

3. update tabel1 set [status kode]=1 where id not in (select min(id) from tabel1 group by [vej navn])

/Kim

Skrevet tor. d. 28. februar 2008 kl. 14:37:41| #10

bsr0809
bsr0809 (11.545 point)
Beklager men jeg kan simpelthen ikke finde ud af det. Hvis jeg sender en database med noget test data er der så en der vil hjælpe mig?

Skrevet tor. d. 28. februar 2008 kl. 19:13:14| #11

terry
terry (247.267 point)
ekspertenATsanthell.dk

AT = @

Skrevet ons. d. 05. marts 2008 kl. 15:35:56| #12

staticdata
staticdata (15.514 point)
Skal du bruge 'status kode' eller er det bare for at kunne få de unikke rækker?

Skrevet ons. d. 05. marts 2008 kl. 15:48:07| #13

staticdata
staticdata (15.514 point)
Hvis du bare skal have de unikke rækker kan du bruge Group By og First. Hvis du skal slette dubletterne, må du have nøglen med (f.eks. en autonummerering) og bruge First på den også. Eksempel, hvor jeg har taget AutoId med som nøgle:

SELECT First(Tabel1.AutoId) AS FørsteOfAutoId, First(Tabel1.[Vej Navn]) AS [FørsteOfVej Navn]
FROM Tabel1
GROUP BY Tabel1.[Vej Navn];

Denne giver:
FørsteOfAutoId    FørsteOfVej Navn
5    Finsensvej 4
1    Roskildevej 143

Dette er de unikke. Hvis du vil slette dubletter, kan du søge de andre frem.

Skrevet tor. d. 06. marts 2008 kl. 08:09:16| #14

spg
spg (42.471 point)
www.parodux.com
Ang: 28/02-2008 13:26:37

Har du prøvet at lave et indeks, du går ind i tabeldesign og i menulinjen, Vis/Indeks

Så fremkommer en lille tabel hvor du taster indeksnavn (du finder bare selv på et) og så skriver du det første felt, som skal indgå i dit indeks det kunne være Status kode, du skriver så ja til at det skal være Unikt indeks. Så hele pointen er at hvis du så laver en linie nedenunder, hvor du ikke skriver et indeksnavn, men kun udfylder feltnavn med Vej Navn, så opstår der et sammensat indeks hvor der kun tillades en udgave af hver kombination!~)

Den vil når du opretter den, sige at det vil betyde slettede data, så tag lige en backup først, men du siger ok og så skulle der kun være en udgave af kombinationen status kode/vej navn og fremover vil man ikke kunne komme til at oprette dubletter...

Skrevet tor. d. 06. marts 2008 kl. 19:14:37| #15

terry
terry (247.267 point)
"Da opgaven virkelig haster så er der mange points i den." :o)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

bnb

Oprettet den 26. maj 2012 kl. 14.33
mikkelfraringsted giver 200 point for svar | Giv et svar »

Opdatering af data fra 1 tabel til 1 anden

Oprettet den 25. maj 2012 kl. 21.05
mllarsen giver 30 point for svar | Giv et svar »

relink tables

Oprettet den 25. maj 2012 kl. 11.14
larsgrau giver 150 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger