USERELATIONSHIP

Gælder for:Beregnet tabel beregningaf målingsvisualisering for en beregnet kolonne

Angiver den relation, der skal bruges i en bestemt beregning som den, der findes mellem columnName1 og columnName2.

Syntaks

USERELATIONSHIP(<columnName1>,<columnName2>)  

Parametre

Begreb Definition
columnName1 Navnet på en eksisterende kolonne, der bruger DAX-standardsyntaksen og er fuldt kvalificeret, og som normalt repræsenterer mange-siden af den relation, der skal bruges. hvis argumenterne er angivet i omvendt rækkefølge, bytter funktionen dem, før de bruges. Dette argument må ikke være et udtryk.
columnName2 Navnet på en eksisterende kolonne, der bruger DAX-standardsyntaksen og er fuldt kvalificeret, og som normalt repræsenterer den ene side eller opslagssiden for den relation, der skal bruges. hvis argumenterne er angivet i omvendt rækkefølge, bytter funktionen dem, før de bruges. Dette argument må ikke være et udtryk.

Returværdi

Funktionen returnerer ingen værdi. funktionen aktiverer kun den angivne relation for beregningens varighed.

Bemærkninger

  • USERELATIONSHIP kan kun bruges i funktioner, der bruger et filter som argument, f.eks.: funktionerne CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD og TOTALYTD.

  • USERELATIONSHIP kan ikke bruges, når sikkerhed på rækkeniveau er defineret for den tabel, hvor målingen er inkluderet. Returnerer f.eks. en fejl, CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) hvis sikkerhed på rækkeniveau er defineret for DimCustomer.

  • USERELATIONSHIP bruger eksisterende relationer i modellen til at identificere relationer efter deres slutpunktkolonner.

  • I USERELATIONSHIP er status for en relation ikke vigtig. Dvs. om relationen er aktiv eller ej, påvirker ikke brugen af funktionen. Selvom relationen er inaktiv, bruges den og tilsidesætter alle andre aktive relationer, der kan være til stede i modellen, men som ikke er nævnt i funktionsargumenterne.

  • Der returneres en fejl, hvis en af kolonnerne, der er navngivet som et argument, ikke er en del af en relation, eller argumenterne tilhører forskellige relationer.

  • Hvis der er behov for flere relationer for at joinforbinde tabel A til tabel B i en beregning, skal hver relation angives i en anden USERELATIONSHIP-funktion.

  • Hvis CALCULATE-udtryk er indlejret, og mere end ét CALCULATE-udtryk indeholder en USERELATIONSHIP-funktion, er det inderste USERELATIONSHIP det, der har forrang i tilfælde af en konflikt eller flertydighed.

  • Op til 10 USERELATIONSHIP-funktioner kan indlejres. Dit udtryk kan dog have et dybere indlejringsniveau, dvs. følgende eksempeludtryk er indlejret 3 niveauer dybt, men kun 2 for USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • For 1-til-1-relationer aktiverer USERELATIONSHIP kun relationen i én retning. Filtre kan især kun overføres fra columnName2's tabel til columnName1's tabel. Hvis der ønskes tovejskrydsfiltrering, kan der bruges to USERELATIONSHIPs med modsat retningsbestemthed i den samme beregning. F.eks., CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Eksempel

I følgende eksempel kan du se, hvordan du tilsidesætter den aktive standardrelation mellem tabellerne InternetSales og DateTime. Standardrelationen findes mellem kolonnen OrderDate i tabellen InternetSales og kolonnen Date i tabellen DateTime.

Hvis du vil beregne summen af internetsalg og tillade udsnit efter ShippingDate i stedet for den traditionelle OrderDate, skal du oprette målingen [InternetSales by ShippingDate] ved hjælp af følgende udtryk:

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

Relationer mellem InternetSales[ShipmentDate] og DateTime[Date] skal findes og bør ikke være den aktive relation. Relationen mellem InternetSales[OrderDate] og DateTime[Date] skal også findes og skal være den aktive relation.