USERELATIONSHIP
platí pro:počítaný sloupecPočítaná tabulkaMeasure vizuálu
Určuje relaci, která se má použít v určitém výpočtu jako relace, která existuje mezi columnName1 and columnName2.
Syntaxe
USERELATIONSHIP(<columnName1>,<columnName2>)
Parametry
Pojem | definice |
---|---|
columnName1 |
Název existujícího sloupce, který používá standardní syntaxi DAXand plně kvalifikovaný, který obvykle představuje mnoho stran relace, která se má použít; if argumenty jsou uvedeny v obráceném pořadí, funkce je před použitím prohodí. Tento argument nemůže být výraz. |
columnName2 |
Název existujícího sloupce, který používá standardní syntaxi DAXand plně kvalifikovaný, který obvykle představuje stranu jedné strany or vyhledávání relace; if argumenty jsou uvedeny v obráceném pořadí, funkce je před použitím prohodí. Tento argument nemůže být výraz. |
Vrácení value
Funkce nevrací žádné value; funkce povoluje pouze určenou relaci pro duration výpočtu.
Poznámky
USERELATIONSHIP lze použít pouze ve funkcích, které jako argument přebírají filter, například: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD funkce.
USERELATIONSHIP nelze použít, pokud je definováno zabezpečení na úrovni řádků pro tabulku, ve které je zahrnuta measure. Například
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))
vrátí zabezpečení na úrovni řádků errorif je definováno pro DimCustomer.USERELATIONSHIP používá existující relace v modelu a identifikuje relace podle sloupců koncového bodu.
V USERELATIONSHIPje stav vztahu not důležitý; to znamená, zda je relace aktivní ornotnot ovlivňuje použití funkce. Even if je relace neaktivní, použije se and přepíše všechny ostatní aktivní relace, které se můžou v modelu vyskytovat, ale not uvedené v argumentech funkce.
Vrátí errorif některý ze sloupců pojmenovaných jako argument je not součástí relace or argumenty patří do různých relací.
If k propojení tabulky A s tabulkou B ve výpočtu musí být každá relace uvedena v jiné USERELATIONSHIP funkci.
If CALCULATE výrazy jsou vnořené, and více než jeden výraz CALCULATEcontains funkci USERELATIONSHIP, pak nejvnitřnější USERELATIONSHIP je ten, který převládá v případě konfliktní or nejednoznačnosti.
Je možné vnořit až 10 USERELATIONSHIP funkcí; váš výraz ale může mít hlubší úroveň vnoření, tj. Následující výraz sample je vnořený do hloubky 3 úrovní, ale pouze 2 pro USERELATIONSHIP:
=CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))
.U relací 1:1 se USERELATIONSHIP aktivuje pouze jedním směrem. Konkrétně filters bude moct tok z tabulky columnName2tabulky columnName1tabulky. If obousměrné křížové filtrování je žádoucí, ve stejném výpočtu se dají použít dva FUNKCE USERELATIONSHIPs s opačným směrem. Například
CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K]))
.
Příklad
Následující sample ukazuje, jak přepsat výchozí, aktivní relaci mezi tabulkami InternetSales and DateTime. Výchozí relace existuje mezi sloupcem OrderDate v tabulce InternetSales and sloupec Date v tabulce DateTime.
Pokud chcete calculatesum internetových prodejů and povolit vytváření řezů podle hodnoty ShippingDate místo tradičního orderDate, vytvořte measure, [InternetSales by ShippingDate] pomocí následujícího výrazu:
= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
Vztahy mezi InternetSales[Datum_odeslání] and DateTime[Date] musí existovat and by měly not být aktivní vztah; relace mezi InternetSales[OrderDate] and DateTime[Date] by měla existovat and by měla být aktivní relace.