Set-modificaties met impliciete definitie van veldwaarden

Hieronder wordt beschreven hoe u een set met veldwaarden kunt definiëren met behulp van een geneste set-definitie.

In dergelijke gevallen moeten de elementfuncties P() en E() worden gebruikt. P() staat hierbij voor de elementset met mogelijke waarden van een veld en E() voor de uitgesloten waarden. Tussen de haakjes kunt u één set-uitdrukking en één veld opgeven, bijvoorbeeld P({1} Customer). Deze functies kunnen niet worden gebruikt in andere uitdrukkingen.

Opmerking: De elementfuncties P() en E() kunnen alleen voor een natuurlijke set worden gebruikt. Met andere woorden een set records die met een eenvoudige selectiebewerking kan worden gedefinieerd. Bijvoorbeeld, de set van {1-$} kan niet altijd door middel van een selectie worden gedefinieerd en is dan ook geen natuurlijke set.{1-$} Als deze functies op niet-natuurlijke sets worden gebruikt, dient u rekening te houden met een verhoging van het aantal onverwachte resultaten.

Examples and results:  

Voorbeelden Resultaten
sum( {$<Customer = P({1<Product={‘Shoe’}>} Customer)>} Sales )

Retourneert de verkoop voor de huidige selectie, maar alleen de klanten die ooit het product ‘Shoe’ gekocht hebben. De elementfunctie P( ) retourneert hier een lijst met mogelijke klanten; de klanten die worden geïmpliceerd door de selectie ‘Shoe’ in het veld Product.

sum( {$<Customer = P({1<Product={‘Shoe’}>})>} Sales )

Hetzelfde als hierboven. Als het veld in de elementfunctie wordt weggelaten, retourneert de functie de mogelijke waarden van het veld dat is opgegeven in de outer-toewijzing.

sum( {$<Customer = P({1<Product={‘Shoe’}>} Supplier)>} Sales )

Retourneert de verkoop voor de huidige selectie, maar alleen de klanten die ooit het product ‘Shoe’ hebben geleverd. De elementfunctie P( ) retourneert hier een lijst met mogelijke leveranciers; de leveranciers die worden geïmpliceerd door de selectie ‘Shoe’ in het veld Product. De lijst met leveranciers wordt vervolgens gebruikt als selectie in het veld Customer.

sum( {$<Customer = E({1<Product={‘Shoe’}>})>} Sales )

Retourneert de verkoop voor de huidige selectie, maar alleen de klanten die nooit het product ‘Shoe’ hebben gekocht. De elementfunctie E( ) retourneert hier een lijst met uitgesloten klanten; de klanten die worden uitgesloten door de selectie ‘Shoe’ in het veld Product.