Laagste beschikbare nummer zoeken

Status
Niet open voor verdere reacties.

JeroenMioch

Gebruiker
Lid geworden
1 dec 2007
Berichten
215
Beste collega programmeurs,

Ik zoek een manier om het laagst beschikbare getal uit een reeks te vinden.

Bijna iedereen bij ons heeft een personeelsnummer, Dit nummer is uniek. Het personeelsnummer word door mijn database gebruikt om records aan elkaar te koppelen.
Echter, er zijn ook externe relaties (vooral werklieden) die ook in onze database worden gezet maar geen personeelsnummer hebben.
Als deze (personeelsnummer-loze) lui meerdere keren in onze database voorkomen, worden de records niet aan elkaar gekoppeld.

Ik had hierop bedacht op ze een apart nummer te geven, beginnende met een XT aanduiding (externen). Dus bijvoorbeeld XT0001 voor de eerste die uitgegeven word.
Om dit getal op te hogen met +1 elke keer dat we er een werknemer inzetten, moet geen probleem zijn. Alleen word dan na jaren het nummer zo hoog dat het 4 cijferige format niet meer voldoet.

Wat ik dus wil is als de persoon met nummer XT0001 niet meer werkzaam is bij ons, en zijn nummer is komen te vervallen, De volgende externe relatie dit nummer krijgt in plaats van +1 op het hoogste nummer wat bekend is in de database (wat de autonummering dus doet).

Is dit mogelijk ?
 
Is dat slim? Daarmee geef je een externe met een hergebruikt nummer namelijk ook gelijk alle records die bij dat nummer horen....
 
Hoi Michel,
Bedankt voor het meedenken.

Als een nummer beschikbaar is, dan wil dat zeggen dat het nummer (en ook het daarbij behorende record) niet meer bestaat.
Het word inderdaad zaak om alle restanten van de vergunning (database heeft parkeervergunningen en waarschuwingen voor foutparkeren) te verwijderen.

Dus als de vergunning is verwijdert (en het nummer dus in principe beschikbaar is) dan moeten ook de waarschuwingen worden verwijdert. Anders heeft de nieuwe gebruiker van dat nummer een probleem.

Maar dat gaat mij wel lukken.
 
Om de vrije externe nummers te zoeken moet je een Outer Join zien te krijgen die alle nummers in een lijst zet. De records die vrij zijn hebben een aantal 0 in de koppeltabel. Probleem is natuurlijk dat je gegevens gaat vergelijken die niet bestaan. Misschien moet je een vaste tabel maken met alle externe nummers die je denkt nodig te hebben, en met een Ja/Nee vakje aangeven of ze actief zijn of niet. In dat geval kun je simpel filteren op niet-actief, die je dan op actief zet. Ik neem aan dat het aantal externen dan nog wel in de hand is te houden.
 
Ik zit te denken dat als ik query naar waardes beginnende met XT krijg ik alle nummers.
Misschien kan er met een stukje code gezocht worden waar het verschil tussen het ene getal en het andere > 1 is. Dan zijn we een heel eind op weg. Alleen hoe definieer je zoiets ?

Ik ga vanavond op mijn werk wel even proberen, al denk ik dat ik met mijn kennis er niet uit ga komen hahaha
 
Dat zal nog niet makkelijk zijn; misschien met een functie nog wel te doen. Zelf zou ik voor de extra tabel gaan, en met vinkjes nummers activeren of niet. Dat kun je heel simpel automatiseren, en geeft je ook altijd een heel goed inzicht in de nummers die je nog vrij hebt. Soms moet je oplossingen bedenken die het werk makkelijker maken (niet mijn specialiteit overigens ;) )
 
Ik denk dat ik snap wat je bedoelt met die kolom met vinkjes, Als ik er niet uikom dan gooi ik het over die boeg.
wel een interessante puzzel en daar hou ik wel van hahaha
Ik laat het weten als het me gelukt is (of niet)

groet : Jeroen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan