Função CROSSJOIN (DAX)
Retorna uma tabela que contém o produto cartesiano de todas as linhas de todas as tabelas nos argumentos. As colunas da nova tabela são todas as colunas de todas as tabelas de argumentos.
Sintaxe
CROSSJOIN(<table>, <table>[, <table>]…)
Parâmetros
- table
Qualquer expressão DAX que retorna uma tabela de dados
Valor de retorno
Uma tabela que contém o produto cartesiano de todas as linhas de todas as tabelas nos argumentos.
Comentários
Todos os nomes de coluna de argumentos table devem ser diferentes em todas as tabelas; caso contrário, um erro é retornado.
O número total de linhas retornado por CROSSJOIN() é igual ao produto do número de linhas de todas as tabelas nos argumentos; além disso, o número total de colunas na tabela de resultados é a soma do número de colunas em todas as tabelas. Por exemplo, se TableA tiver linhas rA e colunas cA, TableB tiver linhas rB e colunas cB e TableC tiver linhas rC e coluna cC, a tabela resultante terá linhas rA × rB × rC e colunas cA + cB + cC.
Exemplo
O exemplo a seguir mostra os resultados da aplicação de CROSSJOIN() a duas tabelas: Colors e Stationery.
A tabela Colors contém cores e padrões:
Cor |
Padrão |
---|---|
Vermelho |
Horizontal Stripe |
Verde |
Vertical Stripe |
Azul |
Crosshatch |
A tabela Stationery contém fontes e apresentação:
Fonte |
Apresentação |
---|---|
serif |
embossed |
sans-serif |
engraved |
A expressão para gerar a junção cruzada é apresentada a seguir:
CROSSJOIN( Colors, Stationery)
Quando a expressão anterior é usada sempre que uma expressão de tabela é esperada, os resultados da expressão são:
Vermelho |
Horizontal Stripe |
serif |
embossed |
Verde |
Vertical Stripe |
serif |
embossed |
Azul |
Crosshatch |
serif |
embossed |
Vermelho |
Horizontal Stripe |
sans-serif |
engraved |
Verde |
Vertical Stripe |
sans-serif |
engraved |
Azul |
Crosshatch |
sans-serif |
engraved |