Modificadores de conjunto com definições de valor de campo implícitas

A seguir, é descrito como definir um conjunto de valores de campo usando uma definição de conjunto aninhado.

Nesses casos, devem ser usadas as funções de elemento P() e E() representando o conjunto de elementos de valores possíveis e os valores excluídos de um campo, respectivamente. Dentro dos parênteses, é possível especificar uma expressão de conjunto e um campo, por exemplo P({1} Customer). Essas funções não podem ser usadas em outras expressões.

Nota: As funções de elemento, P() e E(), só podem ser usadas em um conjunto natural. Ou seja, um conjunto de registos que podem ser definidas por uma seleção simples. Por exemplo, o conjunto fornecido por {1-$} não pode ser sempre definido por seleção e, portanto, não é um conjunto natural. O uso dessas funções em conjuntos não naturais pode gerar resultados inesperados.

Examples and results:  

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

Retorna as vendas da seleção atual, mas somente os clientes que já compraram o produto ‘Shoe’. Aqui, a função de elemento P( ) retorna uma lista de clientes possíveis; aqueles decorrentes da seleção ‘Shoe’ no campo Product.

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

O mesmo que o anterior. Se o campo na função de elemento for omitido, a função retornará os valores possíveis do campo especificado na atribuição externa.

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

Retorna as vendas da seleção atual, mas somente os clientes que já forneceram o produto ‘Shoe’. Aqui, a função de elemento P( ) retorna uma lista de fornecedores possíveis; aqueles decorrentes da seleção ‘Shoe’ no campo Product. Assim, a lista de fornecedores é usada como uma seleção no campo Customer.

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

Retorna as vendas da seleção atual, mas somente os clientes que nunca compraram o produto ‘Shoe’. Aqui, a função de elemento E( ) retorna a lista de clientes excluídos; aqueles excluídos pela seleção ‘Shoe’ no campo Product.