Condividi tramite


USERELATIONSHIP

Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo

Specifica la relazione da utilizzare in un calcolo specifico come quella esistente tra columnName1 and columnName2.

Sintassi

USERELATIONSHIP(<columnName1>,<columnName2>)

Parametri

Termine Definizione
columnName1 Nome di una colonna esistente, utilizzando la sintassi DAX standard and completo, che in genere rappresenta il lato molti della relazione da utilizzare; if gli argomenti vengono specificati in ordine inverso, la funzione li scambierà prima di usarli. Questo argomento non può essere un'espressione.
columnName2 Nome di una colonna esistente, utilizzando la sintassi standard DAXand completo, che in genere rappresenta il lato uno or lato di ricerca della relazione da utilizzare; if gli argomenti vengono forniti in ordine inverso, la funzione li scambierà prima di usarli. Questo argomento non può essere un'espressione.

Restituisce value

La funzione non restituisce alcun value; la funzione abilita solo la relazione indicata per il duration del calcolo.

Osservazioni:

  • USERELATIONSHIP può essere usato solo nelle funzioni che accettano un filter come argomento, ad esempio: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD .

  • USERELATIONSHIP non può essere utilizzato quando viene definita la sicurezza a livello di riga per la tabella in cui è incluso il measure. Ad esempio, CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) restituirà una sicurezza a livello di riga errorif è definita per DimCustomer.

  • USERELATIONSHIP usa le relazioni esistenti nel modello, identificando le relazioni in base alle colonne del punto finale.

  • In USERELATIONSHIPlo stato di una relazione è not importante; ovvero se la relazione è attiva ornotnot influisce sull'utilizzo della funzione. Even if la relazione è inattiva, verrà usata and sostituisce tutte le altre relazioni attive che potrebbero essere presenti nel modello, ma not menzionate negli argomenti della funzione.

  • Viene restituito un errorif qualsiasi colonna denominata come argomento è not parte di una relazione or gli argomenti appartengono a relazioni diverse.

  • If sono necessarie più relazioni per unire la tabella A alla tabella B in un calcolo, ogni relazione deve essere indicata in una funzione USERELATIONSHIP diversa.

  • If CALCULATE espressioni sono annidate, and più espressioni CALCULATEcontains una funzione di USERELATIONSHIP, quindi la USERELATIONSHIP più interna è quella che prevale in caso di conflitto or ambiguità.

  • È possibile annidare fino a 10 funzioni USERELATIONSHIP; Tuttavia, l'espressione potrebbe avere un livello più profondo di annidamento, ad esempio. L'espressione sample seguente è annidata 3 livelli profondi, ma solo 2 per USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • Per le relazioni da 1 a 1, USERELATIONSHIP attiverà solo la relazione in una direzione. In particolare, filters sarà in grado di passare solo dalla tabella columnName2alla tabella columnName1tabella. If filtro incrociato bidirezionale è desiderato, due USERELATIONSHIPs con direzionalità opposta possono essere utilizzati nello stesso calcolo. Ad esempio, CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Esempio

Nell'sample seguente viene illustrato come eseguire l'override della relazione predefinita attiva e attiva tra InternetSales and tabelle DateTime. La relazione predefinita esiste tra la colonna OrderDate, nella tabella InternetSales, and la colonna Date, nella tabella DateTime.

Per calculate la sum delle vendite Internet and consentire il sezionamento in base a ShippingDate anziché per OrderDate tradizionale, creare measure, [InternetSales by ShippingDate] usando l'espressione seguente:

= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))

Le relazioni tra InternetSales[ShipmentDate] and DateTime[Date] devono esistere and devono not essere la relazione attiva; Inoltre, la relazione tra InternetSales[OrderDate] and DateTime[Date] dovrebbe esistere and deve essere la relazione attiva.