NATURALINNERJOIN

La función NATURALINNERJOIN realiza una combinación interna natural de dos tablas.

Sintaxis

NATURALINNERJOIN(
    leftJoinTable,
    rightJoinTable
)

Parámetros
  • leftJoinTable: Tabla existente o expresión que devuelve una tabla para el lado izquierdo de la combinación.
  • rightJoinTable: Tabla existente o expresión que devuelve una tabla para el lado derecho de la combinación.
Valor devuelto

La función NATURALINNERJOIN devuelve una tabla con filas formadas por las filas de las dos tablas implicadas para las que los valores en las columnas comunes existen en ambas tablas.

Información adicional

Las tablas son combinadas según los nombres de los campos comunes. Si las dos tablas no tienen campos comunes, la función devuelve un error.

La tabla devuelta como resultado tendrá las columnas comunes de la tabla izquierda y el resto de columnas de las dos tablas.

No se garantiza el orden de las filas en la tabla resultado.

Las columnas con los mismos nombres deberán tener también el mismo tipo de datos.

Solo se combinan columnas con la misma ascendencia (procedentes de la misma fuente).

Ejemplos

Supongamos que partimos de las siguientes dos tablas, "Population":

Función NATURALINNERJOIN. Ejemplo de uso

y "Extension":

Función NATURALINNERJOIN. Ejemplo de uso

...conteniendo respectivamente la población y extensión de cierto número de países.

Podemos intentar realizar un inner join entre estas dos tablas con la siguiente expresión:

naturalinnerjoin = NATURALINNERJOIN(Population, Extension)

Función NATURALINNERJOIN. Ejemplo de uso

...pero vemos cómo devuelve un mensaje de error debido a un bug de DAX al trabajar con este tipo de combinaciones. Hay dos soluciones a esto:

La primera consiste en, asegurándose de que hay una relación establecida entre los dos campos Country, cambiar el nombre de uno de ellos:

naturalinnerjoin = NATURALINNERJOIN(Population, Extension)

Función NATURALINNERJOIN. Ejemplo de uso

...aunque, en este caso, la función devuelve los dos campos que forman el enlace.

La segunda consisten en leer las tablas usando la función SELECTCOLUMNS añadiendo a los campos comunes una cadena de texto vacía:

naturalinnerjoin =
    VAR
         LeftTable =
             SELECTCOLUMNS(
                 Population,
                 "Country", Population[Country] & "",
                 "Population", Population[Population]
             )
    VAR
        RightTable =
             SELECTCOLUMNS(
                 Extension,
                 "Country", Extension[Country] & "",
                 "Extension", Extension[Extension]
             )
    RETURN
        NATURALINNERJOIN(LeftTable, RightTable)

Función NATURALINNERJOIN. Ejemplo de uso
Funciones relacionadas
Categoría
Otras funciones
Enviado por admin el Mié, 16/01/2019 - 19:20