Jump to content
  • 0

genereren overzicht unieke voorkomens


GJ

Question

Posted

Ik ben al een paar dagen op zoek naar hoe een overzicht te maken met unieke voorkomens uit een totaal lijst. Stel ik heb een lijst met een tig-aantal bedijven (elk met een uniek bedrijfsnummer) die per bedrijf vaker in de lijst kunnen voorkomen. Ik wil nu een overzicht maken met unieke voorkomens van bedrijven (elk bedrijf komt maar 1x voor).

 

Ik kan de oplossing niet vinden, of zoek verkeerd.Het lijkt wel of ik watten in mijn hoofd heb. Wie helpt mij op weg?

 

(ik heb het vooral lopen zoeken in de hoek van selfjoins en portalen)

 

(In MS Access wordt dit geregeld met "Group by")

18 answers to this question

Recommended Posts

  • 0
Posted

Als je de oplossing van hbrendel in een opstartscript zet waarbij elk bedrijf een code 1 krijgt en elk dubbel-bedrijf een code 2 dan kun je dat weer in een portaal laten zien. Dan zit je toch weer goed met je selfjoins en portalen. :lol:

  • 0
Posted

Dit gaat niet werken: ik krijg alleen maar bedrijven terug die maar 1x voorkomen. Alle bedrijven die vaker voorkomen worden weggelaten. Wat ik wil is dat ik elk bedrijf 1x in de lijst krijg ongeacht hoe vaak ze in de hoofdlijst zitten. Dus een bedrijf dat 1x voorkomt wil ik 1x terugzien, een bedrijf dat bv 4x voorkomt wil ik ook 1x terugzien.

  • 0
Posted

Ik weet niet precies wat je gedaan hebt, maar als je een loop/lus maakt die alle bedrijven een 1 geeft en de dubbele een 2 dan zou je alle bedrijven met een 1 in een portaal kunnen laten zien. Betekent dat van de dubbele bedrijven dus de eerste een 1 krijgt, alle gelijke een 2.

Als voorbeeld:

bedrijf A 1

bedrijf B 1

bedrijf B 2

bedrijf B 2

bedrijf C 1

etc.

 

Zo blijft van elk bedrijf 1 versie over.

Misschien gaat het fout bij het maken van de eerste code van het bedrijf?

  • 0
Posted

Er zijn verschillende opties, afhankelijk van wat je met het resultaat wil doen :

 

1. Maak een script dat dubbels weglaat via omit. Je krijgt dan een gevonden reeks records die uniek zijn.

2. Maak een valuelist van de bedrijfsnamen. Deze waardelijst kan je in een veld zetten bvb.

3. Maak een layout met een subrésumé gesorteerd op BedrijfsID, als je bijvoorbeeld enkel wil printen ...

  • 0
Posted

In het voorbeeld van hiker

Als voorbeeld:

bedrijf A 1

bedrijf B 1

bedrijf B 2

bedrijf B 2

bedrijf C 1

etc.

wordt bij "omit" alle voorkomens van bedrijf B weggelaten, terwijl ik er juist 1 wil laten staan.

Dus dat is voor mij niet een oplossing, terwijl het toch de basis is voor jullie hulp. Hoe nu verder? Of leg ik mijn probleem niet helder genoeg uit? Ik stel mij zo voor dat het heel legitiem is om uit een lange lijst (met vele (tien)duizenden records) alle voorkomens van bedrijven te zoeken (en 1 regel per voorkomend bedrijf)

  • 0
Posted

In mijn bewerking werk is dus niet met omit.

Na het geven van de code 1 of 2 hoef je slechts te zoeken op code 1.

Dan vindt je dus alle bedrijven met code 1: in het gegeven rijtje dus A, B en C.

Bedrijven met code 2: B en B vindt je dus niet.

Ofwel: je houdt een keurige lijst met alle bedrijven over, zonder dubbele vermeldingen.

  • 0
Posted

Ik blijf nog even volharden, want ondanks jullie hulp kom ik toch nog niet veel verder. Bijgaand een bestand met geanonimiseerde gegevens, per record zijn in het origineel meer velden aanwezig maar die doen nu even niet ter zaken. Overgebleven zijn codes van bedrijven, codes van gekoppelde overheden en codes van bijbehorende modules. Ik krijg het geheel van externen aangeleverd als een platte (Excel) tabel. Het bestand krijg ik regelmatig, maar met wisselende vulling. Ik wil het geheel evalueren: bijvoorbeeld hoeveel bedrijven (uniek) zitten in de selectie of hoeveel overheden (uniek). En daar gaat het vervolgens fout, ik krijg het ontdubbelen niet voor elkaar (hiker: ik krijg de 1-tjes en 2-tjes uit jouw voorbeeld niet achter de bedijven).

Ontdubbelen_tellen.fp7

  • 0
Posted

Dank Durk. :lol:

 

Ik zat zelf ook al even aan een dergelijk script te denken, maar kon me niet voorstellen dat het zo omslachtig zou moeten zijn (voor iets waarvan ik verwacht dat het met een standaard opdracht zou moeten kunnen).

Nu de gegenereede shortlist nog via een relatie in een eigen tabel zien te krijgen.

  • 0
Posted

Nu de gegenereerde shortlist nog via een relatie in een eigen tabel zien te krijgen.

 

Dat lukt met een nieuwe tabel die als foreign key een veld 'duplikaat' heeft. Relatie: FK_duplikaat --[=]-- duplikaat en in het veld FK_duplikaat een 0 invullen.

 

Een portal laat dan alleen de records met een 0 erin zien.

 

Als de gegevens echt in een eigen tabel moeten 'leven', leg je geen relatie, maar exporteer je de 'unikaten' en importeer je die in een nieuwe tabel, dat lijkt me in ieder geval het eenvoudigste. (Dat vloekt natuurlijk met normalisering.)

 

Misschien kun je ook de 'niet-unikaten' simpelweg wissen?

 

groet,

 

Durk

  • 0
Posted

Zo staat het in de help:

 

Zo vindt u dubbele records, met uitzondering van de eerste vermelding:

1. Als u van plan bent de dubbele records die u vindt, te verwijderen, maakt u eerst een reservekopie van het bestand.

Zie Bestanden opslaan en kopiëren voor meer informatie.

2. Geef een veld op dat een unieke eenheid in uw bestand bepaalt.

In een database Contactpersonen kunt u bijvoorbeeld beter niet het veld Achternaam opgeven, omdat er mogelijk meer mensen met dezelfde achternaam zijn. U kunt dan beter het veld Sofi-nummer opgeven. U kunt ook een berekeningveld maken (dat als resultaat een tekst geeft) waarin gegevens uit verschillende velden worden gecombineerd tot een unieke ID. Maak bijvoorbeeld een formule Voornaam & Achternaam & Telefoonnummer.

3. Definieer een interne relatie.

Gebruik uw gekozen identificerend veld als het vergelijkingsveld in beide tabellen in de relatie. Zie Interne relaties voor meer informatie.

De primaire record is de eerste overeenkomende record volgens de sorteervolgorde die in de relatie is gedefinieerd.

4. Definieer twee velden:

 

Teller, een tekstveld met een automatisch ingevoerd volgnummer (selecteer Volgnummer en accepteer de standaardwaarden voor Volgende en Verhogen met).

 

Dubbele waarden controleren, een berekeningsveld dat een tekst als resultaat geeft, met de formule:

 

If(Teller = tabel1::Teller, "Uniek" : "Dubbele waarde")

5. Kies op de menubalk Records > Alle records tonen.

6. Klik in het nieuwe veld Teller en kies op de menubalk Records > Veldinhoud vervangen en daarna Vervangen door volgnummers. Accepteer opnieuw de standaardwaarden. Selecteer Volgnummer in Invoeropties bijwerken en klik op Vervangen.

Hiermee wijst u een serienummer toe aan alle bestaande records in uw database. In nieuwe records worden volgnummers automatisch ingevoerd.

7. Voer in het veld Dubbele waarden controleren een zoekopdracht uit voor Dubbele waarde.

De eerste record in elke verzameling dubbele waarden bevat nu de waarde "Uniek" in het veld Dubbele waarden controleren en alle dubbele records in dezelfde serie zijn als "Dubbele waarde" gemarkeerd.

Belangrijk Records met een leeg vergelijkingsveld worden gemarkeerd als dubbels. Wanneer u de bovenstaande instellingen hebt gedefinieerd, worden dubbele records onmiddellijk automatisch door het systeem geïdentificeerd wanneer ze worden gemaakt.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...