Avatar billede Chanette Praktikant
25. januar 2017 - 10:53 Der er 7 kommentarer

Sletteforspørgsel - Når 2 kolonner er ens skal ældste slettes i Access 2007

Hej

Jeg skal have lavet en sletteforespørgsel i Access 2007, hvor jeg sletter den ældste post dvs. den med det laveste autonummeringsnr. (kolonne A), hvor både kolonne B og C er identiske. Fx

Kolonne A.....Kolonne B.....Kolonne C
210................Æble.............1
145................Æble.............1
312................Æble.............2

Her skal den slette hele linjen med nr. 145 og beholde den nyeste som har nr. 210 samt nr. 312, hvor der ikke findes flere linje, hvor Kolonne B og C er identiske.

Hvordan får jeg min sletteforespørgsel til kun at slette den ældste linje, hvor både kolonne B og C er identiske?
Avatar billede terry Ekspert
25. januar 2017 - 12:05 #1
Simple solution which will delete all but the lowest, so if there are more than 1 they all get dleteted

Example table named tblTest

Create a query and name it qryToKeep

SELECT Min(tblTest.ColA) AS ColA, tblTest.ColB, tblTest.ColC
FROM tblTest
GROUP BY tblTest.ColB, tblTest.ColC

Now make another query and name it qryToDelete

DELETE *
FROM tblTest
WHERE ColA Not In(Select ColA from qryToKeep);
Avatar billede terry Ekspert
25. januar 2017 - 13:00 #2
If you made the two columns into a composite unique index then you would not get duplicates ;-)
Avatar billede Chanette Praktikant
25. januar 2017 - 13:18 #3
Jeg kan ikke helt gennemskue, hvorfor du vil have at jeg først skal lave en forespørgsel med dem jeg gerne vil beholde bygget ud fra "tblTest" og derefter lave en anden forespørgsel med dem jeg vil slette som også er bygget op på samme tabel altså "tblTest". Så har den første forespørgsel vel ingen værdi når den ikke skal bruges til den næste forespørgsel? Det data jeg skal beholde skal blive liggende i præcis den tabel dataen bliver lagt ind i dvs. i dette eksempel skal det data jeg skal beholde skal blive liggende i "tblTest", da de krydset op til et hav af andre forespørgsler og tabeller og videre samkoblet til et hav af Excel ark.

Vi kan desværre ikke undgå at der kommer dobbelt poster ind, da det data der er i de øvrige kolonner kan ændre sig, når vi ligger data ind hver uge.
Avatar billede terry Ekspert
25. januar 2017 - 13:34 #4
If you look at the second query, you can see that the first query is used.


The first query finds the records you want to keep.

The second query deletes all records NOT IN qryToKeep (the first query)
Avatar billede terry Ekspert
26. januar 2017 - 10:45 #5
can you use this solution?
Avatar billede Chanette Praktikant
26. januar 2017 - 11:43 #6
Tak for forsøget, men nej det giver desværre ikke det ønskede resultat, da det ikke er det korrekte data der bliver tilbage... Jeg forsøger selv med en anden løsning... da der tilsyneladende er lidt mere i det.. og denne problemstilling kan jeg ikke rigtig forklarer uden brug at præcise eksempler og der er behov for kendskab til selve dataen...

Beklager jeg har taget din tid, men tak for forsøget og hjælpen trods det ikke lykkedes..
Avatar billede terry Ekspert
26. januar 2017 - 12:21 #7
OK, if you dont need further help than you can close by accepting a given answer ;-)
If you think we can help then maybe more information would help.
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

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