USERELATIONSHIP

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

Syntaksi

USERELATIONSHIP(<columnName1>,<columnName2>)  

Parametrit

Termi Määritelmä
columnName1 Olemassa olevan sarakkeen nimi, jossa käytetään vakiomuotoista DAX-syntaksia, joka on täydellinen ja joka edustaa yleensä käytettävän suhteen monta-puolta. jos 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, joka on täydellinen ja joka edustaa yleensä käytettävän suhteen yksi- tai haku-puolta. jos argumentit annetaan käänteisessä järjestyksessä, funktio vaihtaa ne ennen niiden käyttämistä. Tämä argumentti ei voi olla lauseke.

Palautusarvo

Funktio ei palauta arvoa. -funktio ottaa käyttöön vain ilmoitetun suhteen laskennan keston ajan.

Huomautukset

  • USERELATIONSHIP-funktiota voi käyttää vain funktioissa, joissa suodatinta käytetään argumenttina, esimerkiksi seuraavat funktiot: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD ja TOTALYTD.

  • USERELATIONSHIP-funktiota ei voi käyttää, kun rivitason suojaus on määritetty taulukolle, johon mittayksikkö sisältyy. Palauttaa esimerkiksi virheen, CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) jos rivitason suojaus on määritetty DimCustomer-toiminnolle.

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

  • USERELATIONSHIP-ympäristössä suhteen tila ei ole tärkeä. Tämä tarkoittaa sitä, että suhde on aktiivinen tai ei, se ei vaikuta funktion käyttöön. Vaikka suhde ei olisikaan aktiivinen, sitä käytetään ja se ohittaa kaikki muut aktiiviset suhteet, joita mallissa saattaa olla mutta joita ei ole mainittu funktion argumenteissa.

  • Palautetaan virhe, jos jokin argumentiksi nimetty sarake ei ole osa suhdetta tai jos argumentit kuuluvat eri suhteisiin.

  • Jos laskutoimituksessa tarvitaan useita suhteita taulukon A ja taulukon B liittämistä varten, kukin suhde on osoitettava eri USERELATIONSHIP-funktiolla.

  • Jos CALCULATE-lausekkeita on sisäkkäin ja useampi kuin yksi CALCULATE-lauseke sisältää USERELATIONSHIP-funktion, sisintä USERELATIONSHIP-funktiota käytetään ristiriita- tai moniselitteisyystapauksissa.

  • Sisäkkäin voi olla enintään 10 USERELATIONSHIP-funktiota. Lausekkeessa voi kuitenkin olla syvempi sisäkkäisten taso, ts. Seuraava esimerkkilauseke on kolmen sisäkkäin kolmen tason syvyyksissä, mutta vain 2 USERELATIONSHIP-funktion kohdalla: =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. Suodattimet voivat erityisesti jatkua vain columnName2-taulukosta columnName1-taulukon kautta. Jos kaksisuuntaista ristisuodatusta halutaan, samassa laskutoimituksessa voidaan käyttää kahta USERELATIONSHIP-kohdetta, joiden suunta on erisuuntainen. Esimerkiksi CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Esimerkki

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

Jos haluat laskea Internet-myynnin summan ja sallia jakolaskun ShippingDate-arvon perusteella perinteisen OrderDate-päivämäärän sijaan, luo mittayksikkö [InternetSales by ShippingDate] seuraavaa lauseketta käyttämällä:

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

InternetSales[ShipmentDate]- ja DateTime[Date]-kohteiden välisen suhteen on oltava olemassa, eikä se saa olla aktiivinen suhde. Lisäksi InternetSales[OrderDate]- ja DateTime[Date]-kohteiden välisen suhteen pitää olla olemassa, ja sen pitää olla aktiivinen suhde.