Jump to content
  • 0

Gerelateerde records tellen op basis van stringvergelijking


Rik Verbruggen

Question

Posted

Hallo,

Ik ben redelijk nieuw met FM en kom ergens niet uit. Ik heb twee tabellen (A en B). Ik wil graag het aantal gerelateerde records uit tabel B vastleggen in tabel A. De relatie is wat lastig, nl: een record uit tabel B moet worden meegeteld als veld1 uit tabel B voorkomt in veld1 uit tabel A (dus een soort stringvergelijking). Bijvoorbeeld: er is een relatie omdat "dam" uit veld1 van tabel B voorkomt in veld1 van tabel A met inhoud "Amsterdam".

Heeft iemand enig idee hoe ik dit kan aanpakken?

Rik.

4 answers to this question

Recommended Posts

  • 0
Posted

Hoi Rik,

 

welkom op dit forum. Ik zou het niet met een relatie doen (da's m.i. veel te complex), maar met een formule in TabelA:

 

ExecuteSQL ( "SELECT COUNT( Veld1 ) FROM TabelB WHERE Veld1 LIKE ?" ; "" ; "" ; Veld1 )

  • 0
Posted

Hallo Menno,

Bedankt voor je snelle reactie. Ik snap het idee inmiddels. Kom er alleen nog niet uit :? . Ik heb een voorbeeldje gemaakt met de twee tabellen (zie bijlage). De resultaten van de telling zijn voor alle zoekwaardes nul maar moeten eigenlijk zijn:

 

dam: 2 (dam komt voor in Amsterdam en Rotterdam)

en: 3 (en komt voor in Den Haag, Purmerend en Groningen)

ter: 2 (ter komt voor in Ter Apel en Monster

 

Enig idee wat ik over de kop zie?

Rik.

Telling.fmp12

  • 0
Posted

Je moet je formule nog ietsje aanpassen:

ExecuteSQL ( "SELECT COUNT( Veld1 ) FROM TabelB WHERE LOWER( Veld1 ) LIKE ?" ; "" ; "" ; "%" & Lower( Veld1 ) & "%" )

de % staat voor de wildcard (=iets of niets)

En dan werkt het wel.

 

mvg, Menno

  • 0
Posted

Helemaal goed Menno, werkt super. SQL had ik nog niet ontdekt. Mooie functie.

Heel erg bedankt.

Rik

PS: voor anderen die dit misschien als voorbeeld lezen: er zit nog een foutje in mijn vorige redenatie.

De telling van 'ter' moet 4 zijn (ipv 2) want Amsterdam en Rotterdam doen natuurlijk ook mee :lol:

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