Vai al contenuto principale

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 a set di elementi

L'esempio più comune di espressione set è quello basato su un elenco di valori di campo racchiusi tra parentesi graffe. I valori sono separati da virgole, ad esempio <Year = {2007, 2008}>. Le parentesi graffe definiscono un gruppo di elementi che possono essere valori di campo espliciti o ricerche di valori di campo.

Se i valori elencati non contengono spazi o caratteri speciali, non è necessario racchiuderli tra virgolette. I valori elencati verranno semplicemente confrontati con i valori dei campi. Questo confronto non rispetta la distinzione maiuscole/minuscole.

Se i valori elencati contengono spazi o caratteri speciali, oppure si desidera utilizzare caratteri jolly, è necessario racchiudere i valori tra virgolette. Utilizzare virgolette semplici se i valori elencati sono valori di campo espliciti. In tal caso il confronto tra i valori elencati e i singoli valori dei campi rispetterà la distinzione maiuscole/minuscole.

Utilizzare virgolette doppie per le ricerche, ossia per le stringhe che contengono caratteri jolly o che iniziano con un operatore relazionale o un segno di uguale. Ad esempio, <Ingredient = {"*Garlic*"}> selezionerà tutti gli ingredienti che contengono la stringa “Garlic”. Le virgolette doppie possono essere sostituite da parentesi quadre, ad esempio <Ingredient = {[*Garlic*]}>. Possono inoltre essere sostituite da accenti gravi, ad esempio <Ingredient = {`*Garlic*`}>. Le ricerche non rispettano la distinzione maiuscole/minuscole.

Nota:

Nelle versioni precedenti di QlikView non vi è distinzione tra virgolette semplici e doppie e tutte le stringhe racchiuse tra virgolette sono trattate come ricerche. Per mantenere la compatibilità con le versioni precedenti di QlikView, i documenti creati con tali versioni continueranno a funzionare come nelle versioni precedenti. I documenti creati con QlikView November 2017 o versioni successive rispetteranno la differenza tra i due tipi di virgolette.

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.

Examples and results:  

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

Se si desidera forzare l'esclusione di valori di campo specifici in oggetti come gli oggetti di testo, è necessario modificare la sintassi dello script. Ad esempio, se la propria istruzione dello script è la seguente:

=count({<ANDActor=>}DISTINCT Title)

Modificarla nel modo seguente:

=count({<~ANDActor=, ANDActor=>} DISTINCT Title)