Zdieľať cez


USERELATIONSHIP

Vzťahuje sa na:vypočítaný stĺpecvypočítanej tabuľkyvizuá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.