Megosztás a következőn keresztül:


USERELATIONSHIP

A következőkre vonatkozik:Számított oszlopSzámított táblaMérVizualizációs számítás

Egy adott számításban az 1. oszlop és a ColumnName2 oszlop közötti kapcsolatként használandó kapcsolatot adja meg.

Szemantika

USERELATIONSHIP(<columnName1>,<columnName2>)

Paraméterek

Időszak Definíció
columnName1 Egy meglévő oszlop neve, amely szabványos DAX szintaxist használ, és teljes mértékben minősített, amely általában a használandó kapcsolat több oldalát jelöli; ha az argumentumok fordított sorrendben vannak megadva, a függvény felcseréli őket használat előtt. Ez az argumentum nem lehet kifejezés.
columnName2 Egy meglévő oszlop neve, amely szabványos DAX szintaxist használ, és teljes mértékben minősített, amely általában a használandó kapcsolat egyik vagy keresési oldalát jelöli; ha az argumentumok fordított sorrendben vannak megadva, a függvény felcseréli őket használat előtt. Ez az argumentum nem lehet kifejezés.

Visszaadott érték

A függvény nem ad vissza értéket; a függvény csak a megadott kapcsolatot engedélyezi a számítás időtartamára.

Megjegyzések

  • USERELATIONSHIPCsak olyan függvényekben használható, amelyek argumentumként szűrőt használnak, például: CALCULATE, CALCULATETABLE, , CLOSINGBALANCEWEEK, CLOSINGBALANCEMONTHCLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEWEEK, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTDTOTALWTDTOTALQTD és TOTALYTD függvények.

  • USERELATIONSHIP nem használható, ha sorszintű biztonság van meghatározva ahhoz a táblához, amelyben a mérték szerepel. Például CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) hibát ad vissza, ha sorszintű biztonság van definiálva a DimCustomer esetében.

  • USERELATIONSHIP a modellben meglévő kapcsolatokat használ, és a végpontoszlopok alapján azonosítja a kapcsolatokat.

  • A USERELATIONSHIPa kapcsolat állapota nem fontos; vagyis azt, hogy a kapcsolat aktív-e vagy sem, nem befolyásolja-e a függvény használatát. A rendszer akkor is használja a kapcsolatot, ha inaktív, és felülbírálja a modellben esetlegesen jelen lévő, de a függvényargumentumokban nem említett aktív kapcsolatokat.

  • A rendszer hibát ad vissza, ha az argumentumként elnevezett oszlopok egyike nem része egy kapcsolatnak, vagy az argumentumok különböző kapcsolatokhoz tartoznak.

  • Ha több kapcsolatra van szükség ahhoz, hogy az A táblát a B táblához lehessen csatlakoztatni egy számításban, minden kapcsolatot egy másik USERELATIONSHIP függvényben kell megjelölni.

  • Ha CALCULATE kifejezések beágyazottak, és egynél több CALCULATE kifejezés tartalmaz egy USERELATIONSHIP függvényt, akkor a legbelső USERELATIONSHIP az, amelyik ütközés vagy kétértelműség esetén érvényesül.

  • Legfeljebb 10 USERELATIONSHIP függvény ágyazható be; azonban a kifejezés mélyebb beágyazási szinttel rendelkezhet, azaz. a következő mintakifejezés 3 szinttel van beágyazva, de csak 2 a USERELATIONSHIPesetében: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • Az 1–1 kapcsolatok esetében USERELATIONSHIP csak egy irányba aktiválja a kapcsolatot. A szűrők csak a ColumnName2 táblából a columnName1 táblába áramolhatnak. Ha kétirányú keresztszűrésre van szükség, két, ellentétes irányú USERELATIONSHIP használható ugyanabban a számításban. Például: CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Példa

Az alábbi minta bemutatja, hogyan bírálhatja felül az InternetSales és a DateTime táblák közötti alapértelmezett, aktív kapcsolatot. Az alapértelmezett kapcsolat az InternetSales tábla OrderDate oszlopa és a DateTime tábla Dátum oszlopa között létezik.

Az internetes értékesítések összegének kiszámításához és a hagyományos OrderDate helyett a ShippingDate szerinti szeletelés engedélyezéséhez hozzon létre mértéket [InternetSales by ShippingDate] a következő kifejezéssel:

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

Az InternetSales[ShippingDate] és a DateTime[Date] kapcsolatnak léteznie kell, és nem lehet aktív kapcsolat; Az InternetSales[OrderDate] és a DateTime[Date] közötti kapcsolatnak is léteznie kell, és aktív kapcsolatnak kell lennie.