Jump to content
  • 0

weergeven van de laagste waarde per unieke code


eroos

Question

Posted

Het volgende:

 

Stel ik heb de volgende regels

 

code 1 waarde 2

code 1 waarde -1

code 2 waarde 1

code 2 waarde -3

 

Nu wil ik een import doen in een ander tabel waarbij alleen de regels met een unieke code en de laagste waarde worden meegenomen. dus:

 

code 1 waarde -1

code 2 waarde -3

 

hoe verkrijg ik dat?

12 answers to this question

Recommended Posts

  • 0
Posted

Ik heb de laagste waarden nodig per product. Dit is namelijk het te kort wat besteld moet worden. Ik wil van alle honderden producten alleen het laagste cumulatieve waarden per product hebben, zodat ik per product maar 1 bestelregel heb.

 

Deze moeten vervolgens van de orderregels naar de bestelregels geimporteerd worden.

  • 0
Posted

De file die je gaat importeren is een FM-file ?

Zo ja, zorg dan eerst dat je een gevonden reeks hebt die voldoet aan je vraag. (via een script is dat relatief eenvoudig te bekomen) Als je daarna importeert, heb je wat je vroeg.

  • 0
Posted

Het is allemaal binnen filemaker 8.5

 

Een zoekopdracht met alle waarden kleiner dan 0 is geen probleem. Ik zie alleen even niet hoe ik kan laten zoeken op de laagste waarde.

  • 0
Posted

De kleinste is toch niet noodzakelijk negatief ... opletten dus.

 

Dus moet je het over een andere boeg gooien :

Sorteer je records eerst op code oplopend en dan op waarde oplopend.

Maak een script dat alle records doorloopt.

Het eerste record van een reeks records met dezelfde code heeft nu de laagste waarde in het veld waarde staan.

Dat veld markeer je, of omit je, dat moet je zelf bekijken.

Na je loop, zoek je dan de gemarkeerde records of de ge-omitte-records.

Die gevonden reeks importeer je.

En klaar is Kees.

 

 

Een andere weg die je kan bewandelen, is de relationele weg :

Maak een selfjoin en gebruik de functie Min() ...

  • 0
Posted

Ik zou het inderdaad ook met een selfjoin doen.

 

Unieke waarden opzoeken doe je zoals in de help beschreven staat:

 

Zo vindt u dubbele records, met uitzondering van de eerste vermelding:
1. Als u van plan bent de dubbele records die u vindt, te verwijderen, maakt u eerst een reservekopie van het bestand.
Zie Bestanden opslaan en kopiëren voor meer informatie.
2. Geef een veld op dat een unieke eenheid in uw bestand bepaalt.
In een database Contactpersonen kunt u bijvoorbeeld beter niet het veld Achternaam opgeven, omdat er mogelijk meer mensen met dezelfde achternaam zijn. U kunt dan beter het veld Sofi-nummer opgeven. U kunt ook een berekeningveld maken (dat als resultaat een tekst geeft) waarin gegevens uit verschillende velden worden gecombineerd tot een unieke ID. Maak bijvoorbeeld een formule Voornaam & Achternaam & Telefoonnummer.
3. Definieer een interne relatie.
Gebruik uw gekozen identificerend veld als het vergelijkingsveld in beide tabellen in de relatie. Zie Interne relaties voor meer informatie.
De primaire record is de eerste overeenkomende record volgens de sorteervolgorde die in de relatie is gedefinieerd.
4. Definieer twee velden:

Teller, een tekstveld met een automatisch ingevoerd volgnummer (selecteer Volgnummer en accepteer de standaardwaarden voor Volgende en Verhogen met).

Dubbele waarden controleren, een berekeningsveld dat een tekst als resultaat geeft, met de formule:

If(Teller = tabel1::Teller, "Uniek" : "Dubbele waarde")
5. Kies op de menubalk Records > Alle records tonen.
6. Klik in het nieuwe veld Teller en kies op de menubalk Records > Veldinhoud vervangen en daarna Vervangen door volgnummers. Accepteer opnieuw de standaardwaarden. Selecteer Volgnummer in Invoeropties bijwerken en klik op Vervangen.
Hiermee wijst u een serienummer toe aan alle bestaande records in uw database. In nieuwe records worden volgnummers automatisch ingevoerd.
7. Voer in het veld Dubbele waarden controleren een zoekopdracht uit voor Dubbele waarde.
De eerste record in elke verzameling dubbele waarden bevat nu de waarde "Uniek" in het veld Dubbele waarden controleren en alle dubbele records in dezelfde serie zijn als "Dubbele waarde" gemarkeerd.
Belangrijk Records met een leeg vergelijkingsveld worden gemarkeerd als dubbels. Wanneer u de bovenstaande instellingen hebt gedefinieerd, worden dubbele records onmiddellijk automatisch door het systeem geïdentificeerd wanneer ze worden gemaakt.

 

En als je vervolgens de unieke records selecteert, kun je aan de hand van een script de records langs en met min() de minimale waarde bepalen. Of je maakt een lijst, dan heb je alles in een overzicht. Wat je wil.

  • 0
Posted

Als je de self-join op het betreffende veld sorteert, dan is het record met de laagste waarde vanzelf het eerste record, dat je vervolgens kunt tonen (of opslaan of wat je maar wilt ... )

  • 0
Posted

Heren,

 

Ik zal morgen eens even kijken. Jullie slaan de spijker op zijn kop voor wat betreft de selfjoin. Ik heb hier namelijk al een poging mee gedaan maar die was tot nu toe vruchtenloos.

 

De oplossing door de laagste waarde eerst te ommitten is tevens een optie om te bekijken... maar niet zo snel als met een selfjoin.

 

Neem aan dat de selfjoin op de unieke code gemaakt dient te worden?

 

Bedankt zover!

 

En gefeliciteerd met het nieuwe bezoekersrecord!

  • 0
Posted
Neem aan dat de selfjoin op de unieke code gemaakt dient te worden?

 

Inderdaad, de selfjoin maak je op het veld CODE.

(en de inhoud daarvan is bij jouw niet uniek want anders had je je vraag niet hoeven stellen :-) )

  • 0
Posted

Ik heb een voorbeeld bestand gemaakt om mijn dilemma wat inzichtelijker te maken mbt de selfjoin.

 

Misschien wil ik iets wat niet kan maar daar zijn we dan snel achter.

 

Waar het om gaat is dat ik per orderregel alleen de laagste waarde exporteer. Je kan zoeken om negatieve waarden. Immers dat zijn de tekorten. Ik hoef daarom alleen de negatiefste waarde te hebben om te exporteren. Als ik met een selfjoin kan werken dan geeft dat een betrouwbaarder resultaat.

voorbeeld.fp7

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