Relazioni attive e inattive

in questo articolo parliamo di come possono essere usate le relazioni inattive.

Prendiamo ad esempio una tabella di ordini dove ho tre date: una data di ordine, una data di consegna e magari una data di incasso. L’obiettivo è poter analizzare quanti ordini mi sono entrati nel periodo, quante consegne dovrò fare nel periodo, quanti euro mi entreranno in cassa nel periodo.

Userò quini una tabella ordini e una tabella di appoggio come calendario in un modello come il seguente:

Qui si vede che le relazioni che definito tra le tre date e il calendario non possono essere attive contemporaneamente, altrimenti DAX non saprebbe come rappresentare i dati; la relazione con linea continua è quella che sarebbe rappresentata nei visual, quella attiva, quelle tratteggiate non verranno MAI prese in considerazione nei visual perchè per essere usate DEVONO essere dichiarate nelle misure.

Noi dichiareremo ora delle misure che le usino.

Gli euro per data consegna sono gestiti dalla relazione attiva, per cui la nostra misura sarebbe la seguente:

Ora se volessimo valutare gli euro per data ordine, dovremmo dimenticarci della relazione Data consegna – Giorno e usare la relazione Data ordine – Giorno; questa operazione la facciamo utilizzando USERELATIONSHIP.

La relazione fa parte del contesto per cui dobbiamo derogare dal contesto; per farlo dobbiamo passare per il costrutto CALCULATE:

Analogamente faremo per gli Euro per data incasso:

E ora siamo pronti per la nostra magica tabellina, qui visualizzata a saldo per mese: