Del via


USERELATIONSHIP

Gjelder for: Beregnet beregning av beregnet tabell for beregnet tabell Mål visualobjekt

Angir relasjonen som skal brukes i en bestemt beregning som den som finnes mellom columnName1 og columnName2.

Syntaks

USERELATIONSHIP(<columnName1>,<columnName2>)  

Parametere

Term Definisjon
columnName1 Navnet på en eksisterende kolonne, ved hjelp av standard DAX-syntaks og fullstendig kvalifisert, som vanligvis representerer mange-siden av relasjonen som skal brukes. hvis argumentene er gitt i omvendt rekkefølge, vil funksjonen bytte dem før du bruker dem. Dette argumentet kan ikke være et uttrykk.
columnName2 Navnet på en eksisterende kolonne, ved hjelp av standard DAX-syntaks og fullstendig kvalifisert, som vanligvis representerer den ene siden eller oppslagssiden av relasjonen som skal brukes. hvis argumentene er gitt i omvendt rekkefølge, vil funksjonen bytte dem før du bruker dem. Dette argumentet kan ikke være et uttrykk.

Returverdi

Funksjonen returnerer ingen verdi. funksjonen aktiverer bare den angitte relasjonen for beregningsvarigheten.

Merknader

  • USERELATIONSHIP kan bare brukes i funksjoner som tar et filter som et argument, for eksempel: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD og TOTALYTD-funksjoner.

  • USERELATIONSHIP kan ikke brukes når sikkerhet på radnivå er definert for tabellen der målet er inkludert. Vil for eksempel CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) returnere en feil hvis sikkerhet på radnivå er definert for DimCustomer.

  • USERELATIONSHIP bruker eksisterende relasjoner i modellen, og identifiserer relasjoner etter sluttpunktkolonnene.

  • Statusen for en relasjon er ikke viktig i USERELATIONSHIP. det vil eksempel: Om relasjonen er aktiv eller ikke, påvirker ikke bruken av funksjonen. Selv om relasjonen er inaktiv, brukes den og overstyrer eventuelle andre aktive relasjoner som kan være til stede i modellen, men som ikke er nevnt i funksjonsargumentene.

  • En feil returneres hvis noen av kolonnene som kalles et argument, ikke er en del av en relasjon, eller argumentene tilhører forskjellige relasjoner.

  • Hvis flere relasjoner er nødvendige for å koble tabell A til tabell B i en beregning, må hver relasjon angis i en annen USERELATIONSHIP-funksjon.

  • Hvis CALCULATE-uttrykk er nestet, og mer enn ett CALCULATE-uttrykk inneholder en USERELATIONSHIP-funksjon, er det innerste USERELATIONSHIP det som råder i tilfelle konflikt eller tvetydighet.

  • Opptil 10 USERELATIONSHIP-funksjoner kan nestes. Uttrykket kan imidlertid ha et dypere nestingsnivå, dvs. Følgende eksempeluttrykk er nestet 3 nivåer dypt, men bare 2 for USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • For 1-til-1-relasjoner aktiverer USERELATIONSHIP bare relasjonen i én retning. Filtre vil spesielt bare kunne flyte fra kolonneNavn2-tabellen til kolonneNavn1-tabellen. Hvis toveis kryssfiltrering er ønsket, kan to USERELATIONSHIPs med motsatt retningsalitet brukes i samme beregning. Eksempel: CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Eksempel

Eksemplet nedenfor viser hvordan du overstyrer standard, aktiv, relasjon mellom InternetSales- og DateTime-tabeller. Standardrelasjonen finnes mellom OrderDate-kolonnen i InternetSales-tabellen og Dato-kolonnen i DateTime-tabellen.

Hvis du vil beregne summen av Internett-salg og tillate oppdeling av ShippingDate i stedet for den tradisjonelle OrderDate, oppretter du mål, [InternetSales by ShippingDate] ved hjelp av følgende uttrykk:

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

Relasjoner mellom InternetSales[ShipmentDate] og DateTime[Date] må finnes og skal ikke være den aktive relasjonen. Relasjonen mellom InternetSales[OrderDate] og DateTime[Date] skal også eksistere og skal være den aktive relasjonen.