Ga naar inhoud
  • 0

Gerelateerde records tellen op basis van stringvergelijking


Rik Verbruggen

Vraag

Geplaatst:

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 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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:

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...