Avatar billede ugotabe_kidding Nybegynder
08. januar 2003 - 09:24 Der er 10 kommentarer og
1 løsning

Hjælp til DeleteQuery

Når jeg sorterer en tabel på feltet "E-mail" kan jeg se at samme bruger optræder flere gange i tabellen. Hvorledes laver jeg en DeleteQuery, der fjerner de redundante poster nemt og hurtigt?

Det skal siges at det ikke er ligemeget hvilke poster der slettes:
Jeg har et felt "Kommentarer" i tabellen og hvis dette er tomt/Null, må posten IKKE slettes, men hvis det ikke er tomt/Null og der findes en bruger med samme Emailadresse (med et tomt Kommentarfelt), skal brugeren hvor Kommentarfeltet IKKE er tomt slettes.

Giver det mening?

/U.K.
Avatar billede jkrons Professor
08. januar 2003 - 09:45 #1
Prøv dette, men lav lige en kopi af databasen først ;-) Det er ikke afprøvet.

DELETE [e-mail], IDFelt, Kommentar
FROM tabelnavn
WHERE ((([E-mail]) In (SELECT [[E-€mail]] FROM [tabelnavn] As Tmp GROUP BY [E-mail] HAVING Count(*)>1 )) AND (Not ([Kommentar]) Is Null));
Avatar billede mhq Nybegynder
08. januar 2003 - 09:45 #2
Skud fra hoften: Prøv query wizard: Find Unmatched.
Kik derefter i queryens opbygning og ret til så der listes de rigtige. Sidenhen kan du lave en Delete query.
Avatar billede jkrons Professor
08. januar 2003 - 09:45 #3
Jeg prøver lige igen

DELETE [e-mail], IDFelt, Kommentar
FROM tabelnavn
WHERE ((([E-mail]) In (SELECT [[E-mail]] FROM [tabelnavn] As Tmp GROUP BY [E-mail] HAVING Count(*)>1 )) AND (Not ([Kommentar]) Is Null));
Avatar billede jkrons Professor
08. januar 2003 - 09:47 #4
Tabelnavn og IDFeltets navn skal selvfølgelig tilrettes til de relevante. Det samme skal E-mail, hvisd det ikke er skrevet på samme måde i din tabel som i min Query.
Avatar billede jkrons Professor
08. januar 2003 - 09:48 #5
Den har dog den fejl, at hvis der findes to brugere med samme e-mail, som begge to har noget stående i kommentarfeltet, slettes de begge. Kun de, der faktisk har tomme kommentarfelter bliver tilbage.
Avatar billede ugotabe_kidding Nybegynder
08. januar 2003 - 09:52 #6
jkrons >> Ups! Godt du skrev det.. Der ER nemlig brugere, der KUN har poster med noget stående i kommentarfeltet.. Disse må IKKE slettes.. Kan man lave en SelectQuery først der udvælger de poster, hvor Email matcher OG har både et tomt og et "fyldt" kommentarfelt?
Avatar billede ugotabe_kidding Nybegynder
08. januar 2003 - 10:00 #7
Det der står i Kommentarfeltet er enten "A", "B", "C" eller "D". Det er udtryk for hvilke lister de forskellige brugere skal registreres på bagefter. De brugere, der har et tomt Kommentarfelt, er allerede tilføjet en række lister. Hvis samme Emailadresse er registreret f.eks. 3 gange med hhv. Null, "A" og "C" i Kommentarfeltet, betyder det at jeg skal slette de instanser med "A" og "C" og tilføje "A" og "C" under det brugerID med Null i Kommentarfeltet.
Dog kan der godt være tilfælde hvor der ikke er en Null-bruger, men kun "A" og "C" - så skal "C" slettes og tilføjes under "A".

Er det bare sniksnak eller forstår du det?
Avatar billede jkrons Professor
08. januar 2003 - 10:02 #8
Jeg forstår det såmænd godt, men jeg kan ikke lige gennemskue hvordan det skal løses. Jeg skal til møde nu, men skal se på det, når jeg kommer tilbage lidt senere.
Avatar billede ugotabe_kidding Nybegynder
08. januar 2003 - 10:03 #9
Takker..
Avatar billede ugotabe_kidding Nybegynder
08. januar 2003 - 12:23 #10
Har løst problemet selv ved manuelt at slette de redundante.. DÅRLIG, LANGSOM løsning!! :(
Avatar billede ugotabe_kidding Nybegynder
08. januar 2003 - 12:47 #11
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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