Zdieľať cez


USERELATIONSHIP

Vzťahuje sa na: Vypočítaný stĺpec Vypočítaná tabuľka Výpočet mierky Vizuál

Určuje vzťah, ktorý sa má použiť v konkrétnom výpočte ako ten, ktorý existuje medzi časťami columnName1 a columnName2.

Syntax

USERELATIONSHIP(<columnName1>,<columnName2>)  

Parametre

Obdobie Definícia
názovStĺpca1 Úplný názov existujúceho stĺpca používajúci štandardnú syntax jazyka DAX, ktorý zvyčajne predstavuje časť "many" vzťahu, ktorý sa má použiť; ak sú argumenty zadané v opačnom poradí, funkcia ich pred použitím vymení. Tento argument nemôže byť výrazom.
názovStĺpca2 Úplný názov existujúceho stĺpca používajúci štandardnú syntax jazyka DAX, ktorý zvyčajne predstavuje stranu "one" alebo stranu vyhľadávania vzťahu, ktorý sa má použiť; ak sú argumenty zadané v opačnom poradí, funkcia ich pred použitím vymení. Tento argument nemôže byť výrazom.

Vrátená hodnota

Funkcia nevráti žiadnu hodnotu. Funkcia povoľuje iba indikovaný vzťah po dobu trvania výpočtu.

Poznámky

  • Funkciu USERELATIONSHIP možno použiť iba vo funkciách, ktoré používajú filter ako argument, napríklad: funkcie CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD a TOTALYTD.

  • Funkciu USERELATIONSHIP nemožno použiť, ak je zabezpečenie na úrovni riadkov definované pre tabuľku, v ktorej je zahrnutá mierka. Napríklad vráti chybu, CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) ak je zabezpečenie na úrovni riadkov definované pre DimCustomer.

  • Funkcia USERELATIONSHIP používa existujúce vzťahy v modeli a vzťahy identifikuje podľa ich stĺpcov koncových bodov.

  • V prípade funkcie USERELATIONSHIP stav vzťahu nie je dôležitý; či už je vzťah aktívny alebo nie, nemá to vplyv na používanie funkcie. Aj keď je vzťah neaktívny, použije sa a prepíše všetky ostatné aktívne vzťahy, ktoré môžu byť prítomné v modeli, ale nemusia byť uvedené v argumentoch funkcie.

  • Ak niektorý zo stĺpcov pomenovaných ako argument nie je súčasťou vzťahu alebo argumenty patria k iným vzťahom, vráti sa chyba.

  • Ak je na spojenie tabuľky A s tabuľkou B v systéme výpočtu potrebných viacero vzťahov, každý vzťah musí byť indikovaný v inej funkcii USERELATIONSHIP.

  • Ak sú výrazy funkcie CALCULATE vnorené a viac ako jeden výraz funkcie CALCULATE obsahuje funkciu USERELATIONSHIP, v prípade konfliktu alebo nejednoznačnosti má prednosť najvnútornejšia funkcia USERELATIONSHIP.

  • Vnoriť možno až 10 funkcií USERELATIONSHIP; Avšak váš výraz môže mať hlbšiu úroveň vnorenia, napr. Nasledujúci vzorový výraz je vnorený v rámci 3 úrovní vnorený, ale iba 2 pre funkciu USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • V prípade vzťahov typu 1-to-1 funkcia USERELATIONSHIP vzťah aktivuje len v jednom smere. Filtre budú môcť prúdiť predovšetkým z tabuľky columnName2 do tabuľky columnName1. Ak si chcete želať obojsmerné krížové filtrovanie, v tom istom výpočte možno použiť dve vlastnosti USERELATIONSHIPs s opačnou smerovosťou. Napríklad, CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Príklad

Nasledujúca ukážka znázorňuje, ako prepísať predvolený, aktívny vzťah medzi tabuľkami InternetSales a DateTime. Medzi stĺpcom OrderDate (DátumObjednávky) tabuľky InternetSales (Predaj Internetu) a stĺpcom Date (Dátum) tabuľky DateTime (DátumČas) existuje predvolený vzťah.

Ak chcete vypočítať množstvo predaja cez internet a vytvoriť výsek podľa stĺpca ShippingDate (DátumOdoslania) namiesto bežne využívaného stĺpca OrderDate (DátumObjednávky), vytvorte mierku [InternetSales by ShippingDate] ([PredajCez InternetSales by ShippingDate]) pomocou nasledujúceho výrazu:

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

Musí existovať vzťah medzi položkami InternetSales[ShipmentDate] (PredajCez Internet[DátumOdoslania]), pričom tento vzťah by nemal byť aktívny; mal by existovať aj vzťah medzi položkami InternetSales[OrderDate] (PredajCezPredaja[DátumObjednávky]) a DateTime[Date] (DátumČas[Dátum]), pričom tento vzťah by mal byť aktívny.