USERELATIONSHIPUSERELATIONSHIP

Specifica la relazione da usare in un calcolo specifico come relazione esistente tra columnName1 e columnName2.Specifies the relationship to be used in a specific calculation as the one that exists between columnName1 and columnName2.

SintassiSyntax

USERELATIONSHIP(<columnName1>,<columnName2>)  

ParametriParameters

TermineTerm DefinizioneDefinition
columnName1columnName1 Nome completo di una colonna esistente in sintassi DAX standard, che generalmente rappresenta il lato "molti" della relazione da usare. Se gli argomenti vengono dati in ordine inverso, prima dell'uso la funzione li scambia.The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. Questo argomento non può essere un'espressione.This argument cannot be an expression.
columnName2columnName2 Nome completo di una colonna esistente in sintassi DAX standard, che generalmente rappresenta il lato "uno" o "ricerca" della relazione da usare. Se gli argomenti vengono dati in ordine inverso, prima dell'uso la funzione li scambia.The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. Questo argomento non può essere un'espressione.This argument cannot be an expression.

Valore restituitoReturn value

La funzione non restituisce alcun valore. La funzione abilita solo la relazione indicata per la durata del calcolo.The function returns no value; the function only enables the indicated relationship for the duration of the calculation.

OsservazioniRemarks

  • È possibile usare USERELATIONSHIP solo in funzioni che accettano un filtro come argomento, ad esempio: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD e TOTALYTD.USERELATIONSHIP can only be used in functions that take a filter as an argument, for example: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD and TOTALYTD functions.

  • Non è possibile usare USERELATIONSHIP quando viene definita la sicurezza a livello di riga per la tabella in cui è inclusa la misura.USERELATIONSHIP cannot be used when row level security is defined for the table in which the measure is included. CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])), ad esempio, restituirà un errore se è definita la sicurezza a livello di riga per DimCustomer.For example, CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) will return an error if row level security is defined for DimCustomer.

  • USERELATIONSHIP usa le relazioni esistenti nel modello, identificandole in base alle colonne punto finale.USERELATIONSHIP uses existing relationships in the model, identifying relationships by their ending point columns.

  • In USERELATIONSHIP lo stato di una relazione non è importante: il fatto che la relazione sia attiva o meno non influisce sull'utilizzo della funzione.In USERELATIONSHIP, the status of a relationship is not important; that is, whether the relationship is active or not does not affect the usage of the function. Anche se è inattiva, la relazione viene usata ed esegue l'override di eventuali altre relazioni attive che potrebbero essere presenti nel modello, ma non sono indicate negli argomenti della funzione.Even if the relationship is inactive, it will be used and overrides any other active relationships that might be present in the model but not mentioned in the function arguments.

  • Se alcune delle colonne indicate come argomento non fanno parte di una relazione o se gli argomenti appartengono a relazioni diverse, viene restituito un errore.An error is returned if any of the columns named as an argument is not part of a relationship or the arguments belong to different relationships.

  • Se sono necessarie più relazioni per creare un join tra la tabella A e la tabella B in un calcolo, ogni relazione deve essere indicata in una funzione USERELATIONSHIP diversa.If multiple relationships are needed to join table A to table B in a calculation, each relationship must be indicated in a different USERELATIONSHIP function.

  • Se le espressioni CALCULATE sono annidate e più espressioni CALCULATE contengono una funzione USERELATIONSHIP, la funzione USERELATIONSHIP più interna sarà quella prevalente in caso di conflitto o ambiguità.If CALCULATE expressions are nested, and more than one CALCULATE expression contains a USERELATIONSHIP function, then the innermost USERELATIONSHIP is the one that prevails in case of a conflict or ambiguity.

  • È possibile annidare fino a 10 funzioni USERELATIONSHIP. L'espressione potrebbe tuttavia avere un livello più profondo di annidamento. L'espressione di esempio seguente, ad esempio, è annidata a 3 livelli di profondità, di cui solo 2 per USEREALTIONSHIP: =CALCULATE(CALCULATE( CALCULATE( &lt;anyExpression&gt;, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).Up to 10 USERELATIONSHIP functions can be nested; however, your expression might have a deeper level of nesting, ie. the following sample expression is nested 3 levels deep but only 2 for USEREALTIONSHIP: =CALCULATE(CALCULATE( CALCULATE( &lt;anyExpression&gt;, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

EsempioExample

L'esempio seguente illustra come eseguire l'override della relazione predefinita attiva tra le tabelle InternetSales e DateTime.The following sample shows how to override the default, active, relationship between InternetSales and DateTime tables. La relazione predefinita esiste tra la colonna OrderDate della tabella InternetSales e la colonna Date della tabella DateTime.The default relationship exists between the OrderDate column, in the InternetSales table, and the Date column, in the DateTime table.

Per calcolare la somma delle vendite Internet e consentire il sezionamento in base a ShippingDate invece che al tradizionale valore OrderDate, creare la misura [InternetSales by ShippingDate] usando l'espressione seguente:To calculate the sum of internet sales and allow slicing by ShippingDate instead of the traditional OrderDate, create measure, [InternetSales by ShippingDate] using the following expression:

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

Le relazioni tra InternetSales[ShipmentDate] e DateTime[Date] devono esistere e non devono essere la relazione attiva. Inoltre, la relazione tra InternetSales[OrderDate] e DateTime[Date] deve esistere e deve essere la relazione attiva.Relationships between InternetSales[ShipmentDate] and DateTime[Date] must exist and should not be the active relationship; also, the relationship between InternetSales[OrderDate] and DateTime[Date] should exist and should be the active relationship.