Avatar billede 3dmaxer.dk Nybegynder
14. februar 2002 - 12:26 Der er 6 kommentarer og
1 løsning

Slet dobbeltrækker i db

Er der en der gider hjælpe med en kode, som gør følgende når den bliver kørt:

Access db: ma
tabel: ils
kolonner: ID, ADR

Jeg ønsker at slette de rækker, som her den samme værdi i ADR - dvs. hvis der er dobbeltværdi i ADR, så skal den ene slettes, så der kun er én tilbage med denne værdi.

Endvidere skal alle de rækker hvor @ ikke indgår i værdien i ADR slettes.

hmm, der behøves vist ikke flere informationer.
Avatar billede freedom Nybegynder
14. februar 2002 - 12:34 #1
lost!
Avatar billede 3dmaxer.dk Nybegynder
14. februar 2002 - 12:46 #2
giver lige et eksempel så:

I tabel ILS er der 2 kolonner:

ID,ADR

Der er 5 rækker med følgende data:

1,er@er.dk
2,timoer
3,skr@sdfg.com
4,ter@sd.dk
5,skr@sdfg.com

række nr. 2 skal slettes da @ ikke indgår i ADR
række nr. 5 skal slettes da ADR er lig med række 3

Er det mere klart nu ?
Avatar billede rou Nybegynder
14. februar 2002 - 13:05 #3
Dit spørgsmål hører ikke til under ASP, men under den database type du bruger.

Men prøv noget ala :
---
DELETE ils AS i1 WHERE
NOT INSTR(adr,"@") > 0
OR
  ((SELECT COUNT(*) FROM ils i2 WHERE i1.adr = a2.adr) > 1
  AND id = (SELECT MAX(id) FROM ils i3 WHERE i1.adr = a3.adr))
---

- Rou
Avatar billede rou Nybegynder
14. februar 2002 - 13:06 #4
Hmm, vent. min sletter kun een extra..
ret det til:

---
DELETE ils AS i1 WHERE
NOT INSTR(adr,"@") > 0
OR
  ((SELECT COUNT(*) FROM ils i2 WHERE i1.adr = a2.adr) > 1
  AND id <> (SELECT MIN(id) FROM ils i3 WHERE i1.adr = a3.adr))
---
Avatar billede 3dmaxer.dk Nybegynder
15. februar 2002 - 12:46 #5
Jeg kan ikke se hvad fejlen er, da du bruger nogle ting jeg ikke er så bekendt med.

1) den siger at @ er en ugyldig karakter
2) Hvis jeg sletter det første led (NOT INSTR(adr,"@") > 0
OR) så siger den at der er syntax error i statement.

Kan du se hvad der er galt?

Hvad står fx a2 og a3 for?


<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("*****.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

sql = "DELETE ils AS i1 WHERE
NOT INSTR(adr,"@") > 0
OR
  ((SELECT COUNT(*) FROM ils i2 WHERE i1.adr = a2.adr) > 1
  AND id <> (SELECT MIN(id) FROM ils i3 WHERE i1.adr = a3.adr))"

myConn.execute(SQL)

myconn.Close
Set myConn = Nothing%>
Avatar billede 3dmaxer.dk Nybegynder
23. februar 2002 - 21:00 #6
Rou: Du har ret i at det er det forkerte forum - lukker og flytter det.
Avatar billede 3dmaxer.dk Nybegynder
23. februar 2002 - 21:18 #7
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