Modificatori set usando le funzioni set
A volte è necessario definire un set di valori di campo utilizzando una definizione di gruppo nidificata. Ad esempio, è possibile voler selezionare tutti i clienti che hanno portato un prodotto specifico, senza selezionare il prodotto.
In tali casi, usare le funzioni set di elementi P() e E(). Questi restituiscono set di elementi dei valori possibili e dei valori esclusi di un campo, rispettivamente. All'interno delle parentesi, è possibile specificare il campo in questione e un'espressione set che definisce l'ambito. Ad esempio:
P({1<Year = {2021}>} Customer)
Ciò restituirà il set di clienti che hanno avuto delle transazioni nel 2021. È quindi possibile utilizzarlo in un modificatore set. Ad esempio:
Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)
Questa espressione set selezionerà tali clienti, ma non limiterà la restrizione della selezione al 2021.
Queste funzioni non possono essere utilizzate in altre espressioni.
In aggiunta, solo i set naturali possono essere utilizzati all'interno delle funzioni dei set di elementi. ossia un set di record che può essere definito mediante una semplice selezione.
Ad esempio, il set restituito da {1-$} non può essere sempre definito mediante una selezione e non è dunque un set naturale. L'utilizzo di queste funzioni su set non naturali restituirà risultati inattesi.
Esempi: Espressioni del grafico per i modificatori set usando funzioni set
Esempi | Risultati |
---|---|
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales ) |
Restituisce le vendite per la selezione corrente, ma solo i clienti che hanno acquistato il prodotto 'Shoe'. La funzione di elemento P( ) qui restituisce un elenco di possibili clienti; quelli che sono interessati dalla selezione 'Shoe' nel campo Product. |
sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales ) |
Restituisce lo stesso risultato riportato in precedenza. Se il campo nella funzione di elemento viene omesso, la funzione restituirà i possibili valori del campo specificato nell'assegnazione esterna. |
sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales ) |
Restituisce le vendite per la selezione corrente, ma solo per i clienti che hanno fornito il prodotto 'Shoe', ovvero, laddove il cliente è anche un fornitore. La funzione di elemento P( ) qui restituisce un elenco di possibili fornitori; quelli che sono interessati dalla selezione 'Shoe' nel campo Product. L'elenco di fornitori viene utilizzato come selezione nel campo Customer. |
sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales ) |
Restituisce le vendite per la selezione corrente, ma solo i clienti che non hanno mai acquistato il prodotto 'Shoe'. La funzione di elemento E( ) qui restituisce l'elenco di clienti esclusi; quelli che sono esclusi dalla selezione 'Shoe' nel campo Product. |