Avatar billede jensenj Nybegynder
24. februar 2010 - 14:17 Der er 3 kommentarer og
1 løsning

Dubletter ved import af csv i access

Jeg ønsker at importere data til en tabel uden dubletter.

En post kan optræde 3 gange, men jeg ønsker kun at importere den seneste.

Eks

Ordrenr      Behandlingsdato
445588      21-12-2009
445588      13-01-2010
445588      20-01-2010

I dette tilfælde er det posten fra d. 20-01-2010 som jeg ønsker at importere.

Alternativt kan være at danne en ny tabel ud fra en forspørgelse.

Kan man det?
Avatar billede terry Ekspert
24. februar 2010 - 14:23 #1
first import the csv file into Access then make a query which groups on Ordrenr and max Date. Then you can make an append query which appends the result of the first query into a new table
Avatar billede _rueskov Nybegynder
24. februar 2010 - 16:38 #2
Først importerer du filen med alle posterne til en ny tabel(Tabel1)

Så opretter du en forespørgsel, går i SQL visning og indsætter dette:
SELECT Tabel1.OrdreNr, Max(Tabel1.BehandlingsDato) AS MaksOfBehandlingsDato FROM Tabel1 GROUP BY Tabel1.OrdreNr;

Hvis du gerne vil have en ny tabel med data'en i, bruger du denne:
SELECT Tabel1.OrdreNr, Max(Tabel1.BehandlingsDato) AS MaksOfBehandlingsDato INTO Tabel2 FROM Tabel1 GROUP BY Tabel1.OrdreNr;
Avatar billede jensenj Nybegynder
25. februar 2010 - 09:14 #3
@rueskov

Jeg bliver bedt om at indtaste parametre?

Først denne - NPOversigt.OrdreNr
Så denne - NPOversigt.Notatdato
Avatar billede _rueskov Nybegynder
25. februar 2010 - 15:47 #4
Jeg er lidt usikker på problemet, så jeg vil prøve at skitsere hvad jeg ville gøre for at løse opgaven.

Importerer HELE filen til en ny tabelTabel1, alle felter og også alle dubletterne. Så har du hele datagrundlaget i en ny tabel.

Så laver du en forespørgsel som kun indeholder felterne OrdreNr og BehandlingsDato og grupperer dubletterne væk.
Det vil sige den her sætning, forudsat at tabellen hedder Tabel1.

SELECT Tabel1.OrdreNr, Max(Tabel1.BehandlingsDato) AS MaksOfBehandlingsDato FROM Tabel1 GROUP BY Tabel1.OrdreNr;

Gem den forespørgsel som Forespørgsel1.

Så laver du en ny forespørgsel og prøver at indsætte denne SQL sætning. Tilpas feltnavnene Felt1, Feltn til dine feltnavne

SELECT Forespørgsel1.OrdreNr, Forespørgsel1.MaksOfBehandlingsDato, Tabel1.Felt1, Tabel1.Feltn
FROM Forespørgsel1 INNER JOIN Tabel1 ON (Forespørgsel1.MaksOfBehandlingsDato = Tabel1.BehandlingsDato) AND (Forespørgsel1.OrdreNr = Tabel1.OrdreNr);
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