Jump to content
  • 0

Interne relatie (selfjoin) om dubbels te zoeken


Iris De Rijcker

Question

Ik heb een selfjoin gedefinieerd om dubbels te zoeken, helemaal zoals Filemaker Help het beschrijft (met de velden 'Counter' en 'Check duplicates' en een match field). Maar in het veld 'Check duplicates' staat er overal 'duplicate', ook bij de unieke velden.

 

Heb iemand anders op het net gevonden met hetzelfde probleem, maar de oplossing die daar gegeven wordt is niet wat ik wil.

http://www.webservertalk.com/archive287-2005-10-1227551.html

Ik wil namelijk (zoals in Help staat) de 'extra' records vinden: dus als er 2 dubbels zijn, wil ik dat er bij de eerste 'unique' staat en bij de tweede 'duplicate'.

 

Had ook ergens dit gelezen:

"The record is seeing itself at the other end of your relationship. Make

sure your self-join relationship uses two predicates:

1) MatchField = MatchField

2) SerialID <> Serial ID"

Maar dat brengt ook geen soelaas.

 

Kan iemand mij helpen??

Link to comment

3 answers to this question

Recommended Posts

  • 0

Merci Burggraaf, maar is wat daar staat niet exact hetzelfde als in de Help? Dat heb ik helemaal op de letter toegepast, maar het werkt dus niet.

 

1. Heb een self-join gelegd van Registratie naar Registratie met als Match Field een Calculation Field 'DatumNaam' (Datum & Naam), van dat veld moet ik dus de dubbels vinden.

2. Dan een Text Field 'Counter' gemaakt: auto-enter serial number.

3. Heb dan een Calculation Field gemaakt 'Check duplicates': If(Counter = Registratie 2::Counter; "Unique"; "Duplicate").

4. Heb via Replace een serial number ingevoegd voor alle records in het veld 'Counter'.

 

En nu staat er dus in elk veld Duplicate en nergens Unique, terwijl er zeker dubbels zijn. Als ik ! zoek in het veld 'DatumNaam' dan zijn er veel dubbels.

 

Ik heb dat voorbeeldje gedownload en bij mij is het exact hetzelfde, behalve dat mijn Match Field een Calculation Field is en in het voorbeeldbestandje is het Match Field een indexed Number Field. Kan het daaraan liggen?

Link to comment
  • 0

Zal misschien even het probleem schetsen waarvoor ik die duplicates denk nodig te hebben.

 

- Ik heb een Events databank waarin ik voor event X mensen kan registreren. De registraties komen in de tabel Registraties.

 

- Voor al de geregistreerden wil ik een onkostennota genereren die in de tabel Onkostennota terechtkomt.

 

- Ik duid voor elke geregistreerde aan of ze al dan niet al betaald hebben en op welke datum en laat dat mooi in de onkostennota verschijnen (voor degenen die betaald hebben komt er een tekstje en voor degenen die niet betaald hebben een ander tekstje).

 

- So far so good. Werkt perfect. MAAR 1 persoon kan maar maximum voor 12 personen inschrijven (= één tafel). Mensen die meerdere volledige tafels willen boeken registreer ik dan meerdere keren zodat ze meerdere keren in de lijst voorkomen (dat is noodzakelijk om achteraf de tafelnummers toe te wijzen).

 

- Probleem is nu dat zo iemand die meerdere tafels boekt wel maar 1 onkostennota moet krijgen waar het totale bedrag + het totaal aantal personen op staat. Dat is al gelukt. MAAR het kan zijn dat ze bv. alleen nog maar de 1e tafel betaald hebben en de tweede niet.

Op de onkostennota zou er moeten staan 'Wij hebben van u al bedrag X op datum Y ontvangen en bedrag A op datum B enz., bedrag Z staat nog open'.

 

- Ik heb een veld 'Betaald' en een veld 'Betaald op'. Maar die velden zijn dus gelinkt aan 1 record in de tabel 'Registraties' terwijl ik voor de Onkostennota gegevens moet gaan halen uit meerdere records (normaal max. 4). Ik was heb al in het script om de onkostennota te maken een find request gedefinieerd om die records samen te nemen en zo de totale prijs en het totaal aantal personen te bekomen. En dat lukt, want dat is maar een som maken. Maar dan zit ik strop. Stel bv. dat:

record 1: bedrag betaald A euro, betaald = 1, op datum X

record 2: bedrag betaald B euro, betaald = 1 op datum Y

record 3: bedrag betaald C euro, betaald = 1 op datum Y

record 4: bedrag betaald 0 euro, betaald = 0 op datum 0

Hoe kan ik een tekst genereren die dan zegt:

'U heeft A euro betaald op X en B+C euro op Y. U dient nog Z euro te betalen'.

 

Misschien is het allemaal wat vergezocht of te hoog gegrepen voor een amateur als ik. Of niet?

Link to comment

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...