Data toevoegen wat nog niet bekend is.

Status
Niet open voor verdere reacties.

CDoorten

Gebruiker
Lid geworden
24 okt 2007
Berichten
6
Hallo,

Ik ben bezig met het ontwerpen van een database in Access. Het is de bedoeling dat ik elke dag gegevens ga inlezen in een Access tabel. Het probleem waar ik nu mee zit is, doordat ik elke dag gegevens inlees er gegevens dubbel worden opgeslagen. Nu wil ik een toevoegquery maken zodat de gegevens die nog niet bekend zijn in de tabel worden toegevoegd aan deze tabel. Ik ben dus opzoek naar een expressie (criteria) die gegevens eruit filtert die al zijn opgeslagen in de tabel. Mijn vraag was nu of u enig idee heeft wat de opbouw van deze expressie zou kunnen zijn en of het uberhaubt mogelijk is.

Alvast bedankt,
 
SQL statement:
Code:
INSERT INTO Maand1 ( Nr, Maand )
SELECT Maand2.Nr, Maand2.Maand
FROM Maand2
WHERE (((Maand2.Maand) Not In (select maand from maand1)));
Hier worden uit maand2 de records geappend in maand1 die er nog niet inzitten.

Je moet dus in je where clause opnemen
Code:
Where ID not in (select ID from tabel)
 
Guus,

Ik heb het even geprobeerd met jouw voorbeeld en dat werkt inderdaad. Ik heb het ook geprobeerd met mijn data maar ik ben bang dat mij tabellen te groot zijn. Ze zijn beide ruim 10.000 records groot. Mijn query kan zoveel gegevens niet aan ben ik bang. Is hier een oplossing voor?

Alvast bedankt!
 
Het aantal records is het probleem niet. Ik werk hier met >300000 records in een tabel.

Kan je je DB posten? (Strippen,Compacten,Zippen)

Of je Query?
 
Het is inmiddels wel gelukt maar het duurt erg lang voordat hij alle records heeft doorzocht of die al aanwezig is. Kan het dat dit gewoon een paar minuutjes duurt?
 
als je input tabel 5 records groot is en hij moet kijken of die al bestaat in een tabel die 10 groot is dan moet er in totaal 5*10=50 zoekacties worden uitgevoerd. Daarom is een join sneller. Als het een issue is dan moet je die query herschrijven.
 
als je input tabel 5 records groot is en hij moet kijken of die al bestaat in een tabel die 10 groot is dan moet er in totaal 5*10=50 zoekacties worden uitgevoerd. Daarom is een join sneller. Als het een issue is dan moet je die query herschrijven.

Hoe bedoel je dat precies dat je dan je query moet herschrijven? Is er een andere manier om ervoor te zorgen dat geen dubbele gegevens worden ingevoerd in een tabel?
 
er zijn nog legio andere mogelijkheden.
Met een RIGHT JOIN;

Als je de append query twee runt, zie je dat de eerste keer 5 records worden geupdate de tweede keer niet meer.
Met de delete query reset je de tabel weer.

Enjoy!
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan