Voorbeeld van een append query
Met behulp van een append query kan men gegevens uit twee verschillende tabellen samenvoegen tot één tabel. Zo kan men bijvoorbeeld de inkopen en verkopen van artikelen in een tabel combineren. Om te beginnen even een eenvoudig schema dat de grote lijn laat zien:
Dit schema geeft een wat vereenvoudigd beeld van de werkelijkheid. Als men namelijk alleen het artikelnummer en de datum in de combinatietabel als sleutel zou gebruiken, is de kans niet denkbeeldig dat men ooit in de problemen komt met dubbele sleutels. Men kan op één dag tenslotte best eenzelfde artikel ontvangen en verkopen. In dit voorbeeld wordt besproken hoe men dit probleem kan voorkomen.
Hieronder een tabel met de velden per betrokken tabel:
| Inkooptabel | Verkooptabel | Combinatietabel |
|---|---|---|
| Artikel | Artikel | Artikel |
| Datum | Datum | Datum |
| Volgnummer | Volgnummer | Volgnummercode |
| Debiteur | ||
| Order | ||
| Aantal | Aantal inkoop | |
| Aantal | Aantal verkoop |
Zoals te zien is, zijn niet alle velden van belang voor de nieuw samen te stellen combinatietabel. Zo worden debiteur en order uit de verkoopgegevens genegeerd. Verder worden de aantallen in de combinatietabel gesplitst, zodat de ontvangen en verkochte aantallen elk over een eigen kolom beschikken.
Een speciaal geval vormt het veld volgnummer. Zowel de ontvangsten als de verkopen beschikken over een uniek volgnummer om records te identificeren. Bij elke ontvangst of verkoop wordt de waarde van het betreffende volgnummer met één verhoogd. In dit voorbeeld beschikken de inkopen en de verkopen elk over een eigen volgnummerteller. Dit betekent dat een volgnummer 3 zowel bij de inkopen als bij de verkopen gebruikt kan worden. Dit zou in de combinatietabel tot problemen kunnen leiden met dubbele sleutels. Om die problemen te voorkomen, wordt het volgnummer in de append query omgebouwd tot een volgnummercode. Die code bestaat uit een I (inkoop) of een V (verkoop) gevolgd door het volgnummer.
De werkwijze wordt nu als volgt:
Normaal gesproken levert het uitvoeren van de query geen problemen op, maar het kan gebeuren dat er een melding verschijnt over 'key violations'. In dat geval probeert men mogelijk records toe te voegen, die al in de combinatietabel aanwezig zijn. Zo mogelijk kan men de combinatietabel eerst legen. Als in die tabel echter gegevens staan die men wil bewaren, zal men selectiecriteria in de append query moeten opnemen, zodat bijvoorbeeld alleen gegevens vanaf een bepaalde datum voor toevoeging aan de combinatietabel aanmerking komen.
| Menu |