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


USERELATIONSHIP

A következőre vonatkozik: Számított oszlop Számított tábla Mérték vizualizáció számítása

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

Syntax

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ő, szabványos DAX-szintaxist használó és teljes mértékben minősített oszlop neve, amely általában a használni kívánt 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

  • A USERELATIONSHIP csak olyan függvényekben használható, amelyek argumentumként szűrőt használnak, például: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD és TOTALYTD függvények.

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

  • A USERELATIONSHIP a modellben meglévő kapcsolatokat használ, amelyek a végpontoszlopok alapján azonosítják a kapcsolatokat.

  • A USERELATIONSHIP alkalmazásban a 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 jelezni.

  • Ha a CALCULATE kifejezések beágyazottak, és egynél több CALCULATE kifejezés tartalmaz USERELATIONSHIP függvényt, akkor a legbelső USERELATIONSHIP az, amely ü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 USERELATIONSHIP esetében: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • Az 1–1 kapcsolatok esetében a USERELATIONSHIP csak egy irányban 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[ShipmentDate] é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.