Partilhar via


USERELATIONSHIP

Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual

Especifica a relação a ser usada em um cálculo específico como aquela que existe entre columnName1 and columnName2.

Sintaxe

USERELATIONSHIP(<columnName1>,<columnName2>)

Parâmetros

Termo Definição
columnName1 O nome de uma coluna existente, usando sintaxe DAX padrão and totalmente qualificado, que geralmente representa os muitos lados da relação a ser usada; if os argumentos forem dados em ordem inversa, a função irá trocá-los antes de usá-los. Este argumento não pode ser uma expressão.
columnName2 O nome de uma coluna existente, usando sintaxe DAX padrão and totalmente qualificada, que geralmente representa o lado or pesquisa da relação a ser usada; if os argumentos forem dados em ordem inversa, a função irá trocá-los antes de usá-los. Este argumento não pode ser uma expressão.

Regresso value

A função não retorna nenhum value; A função só permite a relação indicada para o duration do cálculo.

Observações

  • USERELATIONSHIP só pode ser usado em funções que tomam um filter como argumento, por exemplo: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD funções.

  • USERELATIONSHIP não pode ser usado quando a segurança de nível de linha é definida para a tabela na qual o measure está incluído. Por exemplo, CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) retornará uma errorif segurança de nível de linha é definida para DimCustomer.

  • USERELATIONSHIP usa relações existentes no modelo, identificando relações por suas colunas de ponto final.

  • Em USERELATIONSHIP, o estatuto de uma relação é not importante; ou seja, se a relação está ativa ornotnot afeta o uso da função. Even if a relação estiver inativa, ela será usada and substitui quaisquer outras relações ativas que possam estar presentes no modelo, mas not mencionadas nos argumentos da função.

  • Uma error é retornada if qualquer uma das colunas nomeadas como argumento not faz parte de uma relação or os argumentos pertencem a relações diferentes.

  • If várias relações são necessárias para unir a tabela A à tabela B em um cálculo, cada relação deve ser indicada em uma função USERELATIONSHIP diferente.

  • If CALCULATE as expressões são aninhadas, and mais de uma expressão CALCULATEcontains uma função USERELATIONSHIP, então a USERELATIONSHIP mais interna é a que prevalece em caso de conflito or ambiguidade.

  • Até 10 USERELATIONSHIP funções podem ser aninhadas; no entanto, sua expressão pode ter um nível mais profundo de aninhamento, ou seja. A seguinte expressão sample está aninhada em 3 níveis de profundidade, mas apenas 2 para USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • Para relacionamentos 1-para-1, USERELATIONSHIP ativará o relacionamento apenas em uma direção. Em particular, filters só poderá fluir de tabela columnName2para columnName1tabela 's. If a filtragem cruzada bidirecional for desejada, duas relações USE com direcionalidade oposta podem ser usadas no mesmo cálculo. Por exemplo, CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Exemplo

A sample a seguir mostra como substituir a relação padrão, ativa, entre as tabelas InternetSales and DateTime. A relação padrão existe entre a coluna OrderDate, na tabela InternetSales, and a coluna Date, na tabela DateTime.

Para calculate o sum de vendas pela Internet and permitir o fatiamento por ShippingDate em vez do tradicional OrderDate, crie measure, [InternetSales by ShippingDate] usando a seguinte expressão:

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

As relações entre InternetSales[ShipmentDate] and DateTime[Date] devem existir andnot devem ser a relação ativa; também, a relação entre InternetSales[OrderDate] and DateTime[Date] deve existir and deve ser a relação ativa.