USERELATIONSHIP
Vzťahuje sa na:vypočítaný stĺpec
vypočítanej tabuľky
vizuálového výpočtu
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 |
---|---|
columnName1 |
Úplný názov existujúceho stĺpca používajúci štandardnú syntax 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. |
columnName2 |
Úplný názov existujúceho stĺpca používajúci štandardnú syntax 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
USERELATIONSHIP možno použiť iba vo funkciách, ktoré používajú filter ako argument, napríklad: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD a funkcie TOTALYTD.
USERELATIONSHIP nemožno použiť, keď je zabezpečenie na úrovni riadkov definované pre tabuľku, v ktorej je zahrnutá mierka. Napríklad
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))
vráti chybu, ak je pre DimCustomer definované zabezpečenie na úrovni riadkov.USERELATIONSHIP používa existujúce vzťahy v modeli a vzťahy identifikuje podľa ich stĺpcov koncových bodov.
V USERELATIONSHIPstav 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 vo výpočte potrebných viacero vzťahov, každý vzťah musí byť indikovaný v inej funkcii USERELATIONSHIP.
Ak sú CALCULATE výrazy vnorené a viac ako jeden CALCULATE výraz obsahuje funkciu USERELATIONSHIP, v prípade konfliktu alebo nejednoznačnosti má prednosť najvnútornejšia USERELATIONSHIP.
Vnoriť možno až 10 USERELATIONSHIP funkcií; 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 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 USERELATIONSHIP vzťah aktivuje iba v jednom smere. Filtre budú môcť prúdiť iba z tabuľky columnName2do tabuľky columnName1tabuľke. 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.