Modificatori di gruppo

Un gruppo può essere modificato da una selezione modificata o aggiunta. Tale modifica può essere scritta nell'espressione di gruppo.

Il modificatore consiste di uno o più nomi campo, ognuno seguito da una selezione che dovrebbe essere effettuata nel campo, tutto racchiuso fra parentesi angolari < e >. Ad esempio: <Year={2007,+2008},Region={US}>. I nomi e i valori dei campi possono essere racchiusi tra parentesi come da procedura standard, ad esempio <[Sales Region]={’West coast’, ’South America’}>.

Un modificatore di gruppo modifica la selezione dell'identificatore di gruppo precedente. Se non viene fatto riferimento ad alcun modificatore di gruppo, lo stato della selezione corrente è implicito.

Di seguito vengono descritti i metodi di definizione della selezione.

In base a un altro campo

Un caso semplice è una selezione basata sui valori selezionati di un altro campo, ad esempio <OrderDate = DeliveryDate>. Questo modificatore prenderà i valori selezionati da DeliveryDate e li applicherà come una selezione a OrderDate. Se sono presenti molti valori diversi, più di duecento, evitare di eseguire questa operazione, in quanto prevede l'uso di una quantità elevata di CPU.

In base ai gruppi di elementi (un elenco dei valori di campo nel modificatore)

Il caso più comune è una selezione basata su un elenco di valori di campo compreso fra parentesi graffa in cui i valori sono separati da virgole, ad esempio <Year = {2007, 2008}>. Le parentesi graffe definiscono un gruppo di elementi, in cui gli elementi possono essere valori di campo o ricerche di valori di campo. Una ricerca è sempre definita dall'utilizzo delle doppie virgolette, ad esempio <Ingredient = {"*Garlic*"}> selezionerà tutti gli ingredienti inclusa la stringa ‘garlic’. Le ricerche effettuano la distinzione tra maiuscole e minuscole e vengono eseguite anche sui valori esclusi.

Esclusione forzata

Infine, per i campi in modalità And, è inoltre possibile eseguire un'esclusione forzata. Se si desidera forzare l'esclusione di valori di campi specifici, è necessario utilizzare "~" davanti al nome di campo.

Esempi e risultati:  

Esempi Risultati
sum( {1<Region= {USA} >} Sales ) Restituisce le vendite per la regione USA ignorando la selezione attuale.
sum( {$<Region = >} Sales ) Restituisce le vendite per la selezione attuale, da cui è però stata rimossa la selezione in 'Region'.
sum( {<Region = >} Sales )

Restituisce lo stesso risultato dell'esempio immediatamente precedente. Quando il gruppo da modificare viene omesso, viene utilizzato $.

Nota: La sintassi dei due esempi precedenti viene interpretata come "nessuna selezione" in Region', ossia saranno possibili tutte le regioni alle quali sono state assegnate altre selezioni. Non equivale alla sintassi <Region = {}> (oppure a un altro testo a destra del segno di uguale che restituisce implicitamente un gruppo di elementi vuoto), che viene interpretata come no region.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Restituisce le vendite per la selezione attuale, ma con nuove selezione sia in 'Year' che in 'Region'.
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Il campo Ingredient è in modalità AND.

Restituisce le vendite per la selezione attuale, ma con un'esclusione forzata di tutti gli ingredienti contenenti la stringa 'garlic'.

sum( {$<Year = {“2*”}>} Sales ) Restituisce le vendite per la selezione attuale, ma con tutti gli anni che iniziano con il numero "2", probabilmente l'anno 2000 e successivi selezionati nel campo 'Year'.
sum( {$<Year = {“2*”,”198*”}>} Sales ) Restituisce lo stesso risultato riportato sopra, ma ora nella selezione vengono inclusi anche gli anni 80.
sum( {$<Year = {“>1978<2004”}>} Sales ) Restituisce le vendite per le selezioni correnti, ma con una ricerca numerica utilizzata per definire l'ambito dell'intervallo di anni di cui sommare le vendite.