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.