USERELATIONSHIP
Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne
Określa relację, która ma być używana w określonym obliczeniu jako relacja, która istnieje między columnName1 and columnName2.
Składnia
USERELATIONSHIP(<columnName1>,<columnName2>)
Parametry
Termin | Definicja |
---|---|
columnName1 |
Nazwa istniejącej kolumny przy użyciu standardowej składni DAXand w pełni kwalifikowana, która zwykle reprezentuje wiele stron relacji do użycia; if argumenty są podane w odwrotnej kolejności, funkcja zamieni je przed ich użyciem. Ten argument nie może być wyrażeniem. |
columnName2 |
Nazwa istniejącej kolumny przy użyciu standardowej składni DAXand w pełni kwalifikowana, która zwykle reprezentuje jedną stronę or stronie odnośnika relacji do użycia; if argumenty są podane w odwrotnej kolejności, funkcja zamieni je przed ich użyciem. Ten argument nie może być wyrażeniem. |
Zwracanie value
Funkcja nie zwraca value; funkcja włącza tylko wskazaną relację dla duration obliczenia.
Uwagi
USERELATIONSHIP można używać tylko w funkcjach, które przyjmują filter jako argument, na przykład: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, funkcje TOTALQTDandTOTALYTD.
USERELATIONSHIP nie można użyć, gdy zabezpieczenia na poziomie wiersza są zdefiniowane dla tabeli, w której znajduje się measure. Na przykład
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))
zwróci zabezpieczenia na poziomie wiersza errorif są zdefiniowane dla elementu DimCustomer.USERELATIONSHIP używa istniejących relacji w modelu, identyfikując relacje według kolumn punktu końcowego.
W USERELATIONSHIPstan relacji jest not ważny; oznacza to, czy relacja jest aktywna ornotnot wpływa na użycie funkcji. Even if relacja jest nieaktywna, zostanie użyta and zastąpi wszelkie inne aktywne relacje, które mogą być obecne w modelu, ale not wymienione w argumentach funkcji.
Zwracana jest errorif dowolną kolumnę o nazwie jako argument jest not częścią relacji or argumenty należą do różnych relacji.
If wiele relacji jest potrzebnych do połączenia tabeli A z tabelą B w obliczeniu, każda relacja musi być wskazana w innej funkcji USERELATIONSHIP.
If CALCULATE wyrażenia są zagnieżdżone, and więcej niż jedno wyrażenie CALCULATEcontains funkcji USERELATIONSHIP, a następnie najbardziej wewnętrzna USERELATIONSHIP jest tym, który zwycięża w przypadku konfliktu or niejednoznaczności.
Można zagnieżdżać maksymalnie 10 USERELATIONSHIP funkcji; Jednak wyrażenie może mieć głębszy poziom zagnieżdżania, tj. Następujące wyrażenie sample jest zagnieżdżone na 3 poziomach głębokości, ale tylko 2 dla USERELATIONSHIP:
=CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))
.W przypadku relacji od 1 do 1 USERELATIONSHIP aktywuje relację tylko w jednym kierunku. W szczególności filters będzie mógł przepływać tylko z tabeli columnName2do columnName1tabeli. If dwukierunkowe filtrowanie krzyżowe jest pożądane, w tym samym obliczeniu można użyć dwóch elementów USERELATIONSHIPs z przeciwległą kierunkowością. Na przykład
CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K]))
.
Przykład
Poniższy sample pokazuje, jak zastąpić domyślną, aktywną relację między tabelami InternetSales and DateTime. Relacja domyślna istnieje między kolumną OrderDate w tabeli InternetSales and kolumnie Date w tabeli DateTime.
Aby calculatesum sprzedaży internetowej and zezwalać na fragmentowanie według wartości ShippingDate zamiast tradycyjnej wartości OrderDate, utwórz measure, [InternetSales by ShippingDate] przy użyciu następującego wyrażenia:
= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
Relacje między InternetSales[ShipmentDate] and DateTime[Date] muszą istnieć and powinny not być aktywną relacją; Ponadto relacja między tabelami InternetSales[OrderDate] and DateTime[Date] powinna istnieć and powinna być aktywna relacja.