CROSSJOIN, función (DAX)
Devuelve una tabla que contiene el producto cartesiano de todas las filas de todas las tablas de los argumentos. Las columnas de la nueva tabla son todas las columnas de todas las tablas de argumentos.
Sintaxis
CROSSJOIN(<table>, <table>[, <table>]…)
Parámetros
- tabla
Cualquier expresión de DAX que devuelva una tabla de datos.
Valor devuelto
Tabla que contiene el producto cartesiano de todas las filas de todas las tablas de los argumentos.
Comentarios
Los nombres de columna de los argumentos de table deben ser diferentes en todas las tablas o se devuelve un error.
El número total de filas devueltas por CROSSJOIN() es igual al producto del número de filas de todas las tablas de los argumentos; además, el número total de columnas de la tabla resultante es la suma del número de columnas de todas las tablas. Por ejemplo, si TableA tiene rA filas y cA columnas, TableB tiene rB filas y cB columnas, y TableC tiene rC filas y cC columna, la tabla resultante tiene rA × rb × rC filas y cA + cB + cC columnas.
Ejemplo
En el ejemplo siguiente se muestran los resultados de aplicar CROSSJOIN() a dos tablas: Colors y Stationery.
La tabla Colores contiene colores y patrones:
Color |
Patrón |
---|---|
Rojo |
Horizontal Stripe |
Verde |
Vertical Stripe |
Azul |
Crosshatch |
La tabla Stationery contiene fuentes y presentación:
Fuente |
Presentación |
---|---|
serif |
embossed |
sans-serif |
engraved |
La expresión para generar la combinación cruzada se muestra a continuación:
CROSSJOIN( Colors, Stationery)
Siempre que se use la expresión anterior cuando se espere una expresión de tabla, los resultados de la expresión serán los siguientes:
Rojo |
Horizontal Stripe |
serif |
embossed |
Verde |
Vertical Stripe |
serif |
embossed |
Azul |
Crosshatch |
serif |
embossed |
Rojo |
Horizontal Stripe |
sans-serif |
engraved |
Verde |
Vertical Stripe |
sans-serif |
engraved |
Azul |
Crosshatch |
sans-serif |
engraved |