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.