steven dewaele Posted November 12, 2010 Posted November 12, 2010 ik heb een aantal velden, die ik wil vergelijken, en naam van het hoogste veld(en) wil als resultaat. bvb veld 1 = "1" veld 2 = "3" veld 3 = "1" veld 4 = "2" veld 5 = "2" veld 6 = "3" resultaat = "veld 2, veld 6" bvb veld 1 = "1" veld 2 = "3" veld 3 = "1" veld 4 = "2" veld 5 = "2" veld 6 = "1" resultaat = "veld 2" Kan iemand mij helpen. Quote
0 steven dewaele Posted November 12, 2010 Author Posted November 12, 2010 Case (veld 1 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 1" ; veld 2 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 2" ; veld 3 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 3" ; .......... geeft als resultaat, indien 2 velden de maximum waarde, slechts 1 veld als resultaat. Quote
0 Ari Posted November 12, 2010 Posted November 12, 2010 Je kunt iets met een loop verzinnen die twee keer door de velden heengaat en bij de tweede loop de hoogst gevonden waarde uitsluit Quote
0 AvD Posted November 12, 2010 Posted November 12, 2010 Zo te zien is dit weer een probleem van design flaw (tiens, het is stil in Mexico?): een conceptuele ontwerpfout in de database, wat dan leidt tot moeilijkheden die niet hadden hoeven te bestaan. Is deze databank genormaliseerd? Quote
0 BURODOK Posted November 12, 2010 Posted November 12, 2010 het probleem zit in het gebruik van de casefunctie. zodra de functie de eerste match tegenkomt wordt alles wat daarna komt genegeerd. een serie van if-statements zou beter zijn. ongeveer zo: if ( veld 1 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 1" ) & if ( veld 2 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 2" ) & if ( veld 3 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 3" ) enz Quote
0 steven dewaele Posted November 13, 2010 Author Posted November 13, 2010 (edited) het probleem zit in het gebruik van de casefunctie. zodra de functie de eerste match tegenkomt wordt alles wat daarna komt genegeerd. een serie van if-statements zou beter zijn. ongeveer zo:if ( veld 1 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 1" ) & if ( veld 2 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 2" ) & if ( veld 3 = Max (veld 1 ; veld 2 ; veld 3 ; veld 4 ; veld 5 ; veld 6) ; "veld 3" ) enz Dank u, gelukt. Edited November 13, 2010 by Guest Quote
0 steven dewaele Posted November 13, 2010 Author Posted November 13, 2010 Zo te zien is dit weer een probleem van design flaw (tiens, het is stil in Mexico?): een conceptuele ontwerpfout in de database, wat dan leidt tot moeilijkheden die niet hadden hoeven te bestaan. Is deze databank genormaliseerd? Als beginnende filemaker zijn er een aantal moeilijke uitdrukkingen die ik niet versta : "design flow" "stil in Mexico" "conceptuele ontwerpfout" "databank genormaliseerd" Met dit antwoord geraak ik geen stap verder. Misschien een woordje uitleg bij deze uitdrukkingen ? Steven Dewaele Quote
0 tackenco Posted November 13, 2010 Posted November 13, 2010 "design flow""stil in Mexico" "conceptuele ontwerpfout" "databank genormaliseerd" Hij zei flaw, niet flow! een flaw is engels voor een fout. Stil in mexico zal wel te maken hebben met dat ie niks te doen heeft tijdens zijn vakantie in Mexico conceptuele ontwerpfout is een herhaling van punt 1 databank genormaliseerd betekent dat je herhalende data apart opslaat. Als jouw velden records waren in een gerelateerde tabel dan was jouw vraag op te lossen met één heel simpel berekeningetje, nu heb je een hele functie nodig die niet meer werkt zodra een een veld bij bedacht wordt. Als beginnend filemaker programmeur is het wel leuk als mensen met dingen komen waar je nog eens over moet nadenken, ik neem aan dat hij het zo ook bedoeld had. Grt, Niels Quote
0 AvD Posted November 13, 2010 Posted November 13, 2010 Bedankt, Niels, dat is precies wat ik allemaal bedoelde. Alleen het Mexico-thema is in de wind gegaan. Ik bedoelde daarmee dat Jean nog niet gereageerd had: Jean is prof aan de universiteit van Yucatan (Mexico), bij mijn weten de enige plaats op deze planeet waar FileMaker op universitair niveau gegeven wordt. En Jean is de grote specialist op het gebied van database design en normalisatie. Tussen haakjes: jaren geleden hebben we hier al beslist om het forum een apart onderdeel te geven voor dit soort informatie. Kijk maar eens naar hier: in het algemeen onderdeel Documentatie. Daarbij komt dat een gedegen opleiding niet te vergelijken is met harde zelfstudie. Nochtans is het bouwen van een databank een complexer (en gevaarlijker) gegeven dan pakweg het bouwen van een houten brug. Van die laatste kan je "zien" dat die het wel zal houden, wat van de relationele databank niet kan gezegd worden... Quote
0 JeanWM Posted November 22, 2010 Posted November 22, 2010 Zo te zien is het is stil in Mexico? Een hoop 'dat doe ik later wel eens' dingetjes aan het weg werken op de Peninsula.... Het is inderdaad het resultaat van een design flaw. Wat zal er moeten gebeuren indien er later een veld (waarde) moet bijkomen. 'Dat zal nooit gebeuren' is geen argument. Je kunt best eerst het gebruik van de db uitschrijven, wat het moet doen, welk resultaat nodig is en hoe je dat bereikt. Een soort of Business Rules. Daaruit haal je de de layouts, velden en controles. Met veld1....veldn zijn we niet veel. Beter zou zijn om de echte naam van de velden te gebruiken om een mogelijke oplossing te bedenken. Quote
Question
steven dewaele
ik heb een aantal velden, die ik wil vergelijken, en naam van het hoogste veld(en) wil als resultaat.
bvb
veld 1 = "1"
veld 2 = "3"
veld 3 = "1"
veld 4 = "2"
veld 5 = "2"
veld 6 = "3"
resultaat = "veld 2, veld 6"
bvb
veld 1 = "1"
veld 2 = "3"
veld 3 = "1"
veld 4 = "2"
veld 5 = "2"
veld 6 = "1"
resultaat = "veld 2"
Kan iemand mij helpen.
9 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.