Jump to content
  • 0

Tellen van unieke (geselecteerde) veldwaarden


HMJR

Question

5 answers to this question

Recommended Posts

  • 0

Nee, altijd 1 waarde in het veld.

Veld 1 Record 1 waarde = A

Veld 1 Record 2 waarde = B

Veld 1 Record 3 waarde = A

Als alle records zijn geselecteerd dan zou het resultaat van de telling 2 moeten zijn.

Als de records 1 en 3 zijn geselecteerd dan zou het resultaat van de telling 1 moeten zijn.

Link to comment
  • 0

Volgens mij kan dit alleen als je tabel is gesorteerd op de inhoud van je genoemde veld.

Vervolgens heb je een berekend veld nodig met bijgevoegde code.

 

Let ( x = GetNthRecord ( veld1 ; Get(RecordNumber) - 1 ) ; If ( veld1 <> x ; 1 ; "" ) )

 

Zodra je dit gedaan hebt zorg dan dat het berekeningsresultaat niet wordt opgeslagen. Het veld moet de berekening zogezegd iedere keer opnieuw uitvoeren.

Deze berekening zet als het ware een vlaggetje (1) zodra de inhoud van veld1 anders als de inhoud van veld1 van het vorige record.

Verder is het wellicht nog nodig om een summary veld aan te maken die het totaal berekend van je 'flag' veld.

Link to comment
  • 0

met sql is dit sneller mogelijk denk ik. Het probleem met SQL is dat die geen "besef" heeft van de huidige foundset. Ik gebruik hiervoor altijd de IN waarbij ik een lijst opbouw met de IDs van de records in mijn foundset.

 

Verder is het dan gewoon deze calculatie:

ExecuteSQL ( "SELECT COUNT ( DISTINCT myField ) FROM myTable WHERE ID IN ( " & lijst van IDs & ")" ; "" ; "" )

 

de lijst van IDs moet wel komma separated zijn.

Link to comment
  • 0

En bij gebrek aan kennis zoals Yamas en Andries die hebben zou ik het met een Loop doen:

Teller begint op 1 omdat de eerste waarde altijd uniek is

Alle records sorteren op veldwaarde

Naar volgend record: als de waarde hetzelfde is, teller niet ophogen,

naar volgend record: als de waarde anders is dan de teller 1 ophogen.

Eindstand van de teller geeft het aantal verschillende waarden.

Link to comment

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