Jaa


USERELATIONSHIP

Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMeasureVisuaalinen laskutoimitus

Määrittää suhteen, jota käytetään tietyssä laskutoimituksessa kohteiden columnName1 and columnName2 välillä.

Syntaksi

USERELATIONSHIP(<columnName1>,<columnName2>)  

Parametrit

Termi Määritelmä
columnName1 Olemassa olevan sarakkeen nimi, jossa käytetään vakiomuotoista DAX -syntaksia, and täydellinen, joka edustaa yleensä käytettävän suhteen monta-puolta. if argumentit annetaan käänteisessä järjestyksessä, funktio vaihtaa ne ennen niiden käyttämistä. Tämä argumentti ei voi olla lauseke.
columnName2 Olemassa olevan sarakkeen nimi, jossa käytetään vakiomuotoista DAX -syntaksia and täydellinen, joka edustaa yleensä käytettävän suhteen yhtä puolta or haku puolta. if argumentit annetaan käänteisessä järjestyksessä, funktio vaihtaa ne ennen niiden käyttämistä. Tämä argumentti ei voi olla lauseke.

Palauta value

Funktio ei palauta value; -funktio ottaa käyttöön vain ilmoitetun suhteen laskennan duration.

Huomautukset

  • USERELATIONSHIP voi käyttää vain funktioissa, joissa filter argumenttina ovat esimerkiksi seuraavat funktiot: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD funktiot.

  • USERELATIONSHIP ei voi käyttää, kun rivitason suojaus on määritetty taulukolle, johon measure sisältyy. esimerkiksi CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) palauttaa errorif rivitason suojauksen, joka on määritetty DimCustomer-toiminnolle.

  • USERELATIONSHIP käyttää mallin olemassa olevia suhteita ja tunnistaa suhteita niiden lopetuspisteen sarakkeiden mukaan.

  • USERELATIONSHIPsuhteen tila on not tärkeä. Tämä tarkoittaa sitä, onko suhde aktiivinen, ornot vaikuttaa not funktion käyttöön. Even if yhteys on passiivinen, sitä käytetään, and ohittaa kaikki muut aktiiviset suhteet, joita mallissa saattaa olla, mutta not mainittu funktion argumenteissa.

  • error palautetaan, if mikä tahansa argumentiksi nimetty sarake on not osa suhdetta, or argumentit kuuluvat eri suhteisiin.

  • If laskutoimituksessa tarvitaan useita suhteita taulukon A ja taulukon B liittamiseen, kukin suhde on osoitettava eri USERELATIONSHIP funktiolla.

  • If CALCULATE lausekkeet ovat sisäkkäin, and useampi kuin yksi CALCULATE -lauseke containsUSERELATIONSHIP funktiota, sisintä USERELATIONSHIP on se, joka voittaa moniselitteisyyden or konfliktissa.

  • Sisäkkäin voi olla enintään 10 USERELATIONSHIP funktiota. Lausekkeessa voi kuitenkin olla syvempi sisäkkäisten taso, ts. seuraava sample on kolme sisäkkäistä tasoa syvä, mutta vain kaksi USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • 1:1-yhteyksissä USERELATIONSHIP aktivoi suhteen vain yhteen suuntaan. Erityisesti filters voivat jatkua vain columnName2taulukosta columnName1taulukon. If kaksisuuntaista ristisuodatusta halutaan, samassa laskutoimituksessa voidaan käyttää kahta USERELATIONSHIP-kohdetta, joiden suunta on päinvastainen. Esimerkki: CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Esimerkki

Seuraavassa sample näytetään, miten voit ohittaa InternetSales and DateTime -taulukoiden välisen aktiivisen oletussuhteen. Oletussuhde on olemassa InternetSales-taulukon OrderDate-sarakkeen and datetimeDate sarakkeen välillä.

Jos haluat calculate Internet-myynnin sumand sallia jakolaskun ShippingDate-arvon perusteella perinteisen OrderDate-päivämäärän sijaan, luo measure, [InternetSales by ShippingDate] käyttämällä seuraavaa lauseketta:

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

InternetSales[ShipmentDate]- and DateTime[Date] -kohteiden välisen suhteen on oltava olemassa, andnot oltava aktiivinen suhde. Lisäksi InternetSales[OrderDate]-and DateTime[Date] välisen suhteen pitää olla olemassa, and suhteen pitäisi olla aktiivinen.