Jump to content
  • 0

.


Felix

Question

Recommended Posts

  • 0
Posted

ExecuteSQL ( "
SELECT Naam, COUNT ( DISTINCT ( Plaats ) )
FROM plaatsnaam
GROUP BY Naam"
; "" ; "" )

 

is nog niet helemaal correct. Dit is mijn data set:

Cornelissen, Delft
Cornelissen, Delft
Cornelissen, Rotterdam
Cornelissen, Amsterdam
Peters, Brussel
Peters, Brussel
Pieters, Antwerpen

 

Resultaat:

Cornelissen,3
Peters,1
Pieters,0

 

wat klopt voor Cornelissen en Peters, maar niet voor Pieters, daar zou ook 1 moeten staan. Snap ik nog niet helemaal waarom hij dat doet...

  • 0
Posted

Felix, simpel geredeneerd zou ik werken met controle/extra velden en die optellen.

Dus eerst de unieke namen bepalen, unieke combinatie's bepalen van Naam en Plaats en die tellen. Is niet zo netjes maar werkt wel natuurlijk :)

  • 0
Posted

Ik heb wel een idee voor je maar geen tijd / zin om het uit te werken :D

 

Je kunt eenvoudig per persoon een list creëren waar alle gekoppelde plaatsen in staan. Die ziet er bijvoorbeeld zo uit:

a

a

b

a

c

 

Deze list moet verdicht worden tot

a

b

c

En daar een valuecount op los laten. De uitdaging zit hem natuurlijk in het verdichten en volgens mij kan dat alleen met een recursive calc.

 

Succes en laat me even weten of je er uit bent gekomen! :wink:

  • 0
Posted (edited)

Hi Felix,

 

bijgaand een voorbeeld zonder extra tabellen.

 

De werking kan bijna niet eenvoudiger: elk record heeft een veldje met de waarde 1

je maakt een self-relatie op de combi naam en plaats en daarover toon je een resumé-totaal

 

dit is een methode die ik zelf in rapportages regelmatig toepas.

 

mvg, Menno

 

[edit]Dit geeft het aantal keren dat een combinatie voorkomt weer, dus is zeker niet de oplossing van deze vraag[/edit]

Edited by Guest
  • 0
Posted

Ja je hebt gelijk ik heb niet goed gekeken, mijn variant geeft je het aantal keren dat een combinatie voorkomt, dat is een hele andere vraag. Ik ben aan het werk, vanavond heb ik wat meer tijd en kijk er dan weer even naar. ;-)

  • 0
Posted

Blijf ik toch benieuwd of er iemand op een slimme manier een list kan verdichten aangezien dat uiteindelijk de makkelijkste oplossing zou zijn en dat best wel vaak van pas komt...

  • 0
Posted (edited)

Deze doet het iets beter dan mijn voorstel van vanmiddag. De relatie is ook hier de self-relatie op de combinatie van naam en plaats. Vervolgens wordt er van de gerelateerde plaatsnamen met executeSql() met SELECT DISTINCT de lijst van unieke plaatsnamen bij die combinatie opgehaald, daarover een valuecount en zie daar. De formule kan dan zijn:

ValueCount ( ExecuteSQL ( "SELECT DISTINCT Plaats FROM PlaatsNaam_Self WHERE Naam = ?" ; "" ; "" ; Naam ) )

of

ExecuteSQL ( "SELECT Count ( DISTINCT Plaats ) FROM PlaatsNaam_Self WHERE Naam = ?" ; "" ; "" ; Naam )

net wat je leuker vind.

 

mvg, Menno

 

[edit 24 nov 2013]Bijlage verwijderd ivm verbeterde versie in een later antwoord:http://www.clarify.net/viewtopic.php?f=38&t=8335&start=30#p49351[/edit]

Edited by Guest
  • 0
Posted

Dit is natuurlijk de ultieme oplossing Menno! En het beantwoordt ook mijn vraag over een verdichte list. Het slechte nieuws is dat ik mij nu echt moet gaan verdiepen in SQL terwijl FM nu juist zo lekker easy going is.. :?

 

p.s. Eigenlijk is de oplossing van Andries nog simpeler en meer straigth forward. Alleen vreemd dat deze niet goed werkt.

  • 0
Posted
Blijf ik toch benieuwd of er iemand op een slimme manier een list kan verdichten aangezien dat uiteindelijk de makkelijkste oplossing zou zijn en dat best wel vaak van pas komt...

Met snel lezen van de berichten zie ik één oplossing niet genoemd, die ruim voldoende is om de gegevens weer te geven zoals gevraagd. Ik haal uit de vraag niet dat het als getal in een veld moet komen. Dan geen ExecuteSQL en zelfs geen relaties nodig.

 

Een lay-out met subresume gedeelte en daarop een resume-veld (telling) moet toch werken? Of snap ik het niet?

ExecuteSQL is geen Haarlemmer olie. :-) Zeker niet als je vaste veldnamen erin gaat gebruiken.

 

René

  • 0
Posted
Blijf ik toch benieuwd of er iemand op een slimme manier een list kan verdichten aangezien dat uiteindelijk de makkelijkste oplossing zou zijn en dat best wel vaak van pas komt...

 

Ooit eens een custom functie gemaakt die dat doet.

De functie heet UniqueLines ( theList ).

Let ( 
[
xList = theList ;
xItem = ValueCount ( xList ) ;
xValue = "¶" & GetValue ( xList ; xItem ) & "¶" 
] ;

If ( xItem > 1 ;
GetValue ( xList ; xItem ) & "¶" & UniqueLines ( SubstituteCompletely ( xList ; xValue ; "¶" ) ) ;
"" )

)

Let op! De aangeboden lijst moet beginnen en eindigen met een lege waarde!

 

Er wordt gebruik gemaakt van een tweede custom functie die iets vollediger vervangt dan de standaard van FM (volgens mij van Peter Wagemans...)

 

Deze heet SubstituteCompletely ( theText ; theSearch ; theReplace )

Let (
[
theText = Substitute ( theText ; theSearch ; theReplace ) ;
xSearch = "•∞"& theSearch ;
xCSSearch = Substitute ( theText ; theSearch ; xSearch ) ; 
xCSReplace = Substitute ( theReplace ; theSearch ; xSearch ) 
] ;

If ( PatternCount ( xCSSearch ; xSearch ) and ( not PatternCount ( xCSReplace ; xCSSearch ) ) ; SubstituteCompletely ( theText; theSearch; theReplace ) ; theText )

)

 

rmw

  • 0
Posted
Rene, Jammer dat je geen werkend voorbeeld geeft maar wel een flauwe sluikreclame.

:-) Had je liever de term RTFM gehad? :-)

Afgelopen week heb ik in die training de techniek die ik bedoel aan een groep uitgelegd waaronder al een aantal ervaren krachten die toch even verbaasd keken en "wat eenvoudig en gaaf" riepen. Vandaar het linkje.

 

Als de vragensteller een bestandje met voorbeelddata bijsluit nodigt dat voor mij eerder uit tot het maken van een werkend voorbeeld. Is er bovendien geen onzekerheid over welke data er precies gebruikt wordt. En is het alleen weergeven of het getal echt in een veld? Ik ga van het eerste uit en dan toch maar wat tijd in gestoken:

plaats naam rr.fmp12

Zie de twee lay-outs erin, ieder met scriptactivering om automatisch correct te sorteren.

 

Mvg,

René

  • 0
Posted (edited)

Wat betreft het voorbeeldbestand RTFP (Previous)

Wat betreft de vraagstelling RTFP (Problem) :D

 

Het werkt niet René, terug naar de tekentafel...

Edited by Guest

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