cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Filtrado de tablas en orden inverso.

Hola equipo,

Espero que a todos les vaya bien.

Tengo dos tablas, digamos tabla1 y tabla2. La relación es algo así como la tabla1 de filtros tabla2 como se muestra a continuación.

Angith_Nair_0-1638185732618.png

Estoy usando la medida como

Medida =
CALCULAR(
SUMA(Tabla1[Valores]),
Filtro(Cuadro2,Tabla2[País] = "India")
)

Ahora, según tengo entendido, la tabla2 no filtrará la tabla1 ya que la dirección del filtro es de la tabla 1 a la tabla2. Pero desafortunadamente, estoy obteniendo la suma de valores como 10 para la India, lo que significa que la tabla 2 también está filtrando la tabla1. ¿Cómo es esto posible?

Gracias de antemano por sus esfuerzos...

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@Angith_Nair ,

Según la descripción oficial.

Para las relaciones de uno a muchos, la dirección del filtro cruzado es siempre desde el lado "uno" y, opcionalmente, desde el lado "muchos" (bidireccional). Para las relaciones uno a uno, la dirección del filtro cruzado es siempre de ambas tablas. Por último, para las relaciones de muchos a muchos, la dirección del filtro cruzado puede ser desde una de las tablas o desde ambas tablas. Observe que cuando el tipo de cardinalidad incluye un lado "uno", los filtros siempre se propagarán desde ese lado.

Y para las relaciones uno a muchos, la expansión de la tabla se lleva a cabo de los lados "muchos" a "uno" mediante el uso de la semántica LEFT OUTER JOIN. Cuando no existe un valor coincidente del lado "muchos" al "uno", se agrega una fila virtual en blanco a la tabla auxiliar "uno".

La expansión de la tabla también se produce para las relaciones de grupo de origen uno a uno, pero mediante el uso de la semántica FULL OUTER JOIN. Garantiza que se agreguen filas virtuales en blanco a cada lado, cuando sea necesario.

Las filas virtuales en blanco son efectivamente Miembros desconocidos. Los miembros desconocidos representan violaciones de integridad referencial donde el valor de lado "muchos" no tiene el valor de "un" lado correspondiente. Idealmente, estos espacios en blanco no deberían existir, y se pueden eliminar limpiando o reparando los datos de origen.

A continuación se muestra cómo funciona la expansión de la tabla con un ejemplo animado:

animation-expanded-table.gif

Y su caso, si de acuerdo con la descripción oficial, si su dax en sql, al igual que:

select *from tableA A 

                     left join tableB B  on A.country=B.country 

                                     where B.Country="India"

¿Respondí a su pregunta? ¡Marca mi post como solución!


Saludos

Lucien

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Hola

No conozco el contenido de la Tabla2, pero parece que la Tabla 2 (como la Tabla 1) es una tabla de hechos. Si mi suposición es correcta, entonces debería haber una tercera y cuarta tabla llamada Productos y País. Estas 2 nuevas tablas deben estar relacionadas con la Tabla1 y la Tabla 2 (Muchas a Una y Una Sola). A todas sus imágenes, debe arrastrar Producto y País desde estas 2 nuevas tablas.

Espero que esto ayude.

Syndicate_Admin
Administrator
Administrator

@Angith_Nair ,

Según la descripción oficial.

Para las relaciones de uno a muchos, la dirección del filtro cruzado es siempre desde el lado "uno" y, opcionalmente, desde el lado "muchos" (bidireccional). Para las relaciones uno a uno, la dirección del filtro cruzado es siempre de ambas tablas. Por último, para las relaciones de muchos a muchos, la dirección del filtro cruzado puede ser desde una de las tablas o desde ambas tablas. Observe que cuando el tipo de cardinalidad incluye un lado "uno", los filtros siempre se propagarán desde ese lado.

Y para las relaciones uno a muchos, la expansión de la tabla se lleva a cabo de los lados "muchos" a "uno" mediante el uso de la semántica LEFT OUTER JOIN. Cuando no existe un valor coincidente del lado "muchos" al "uno", se agrega una fila virtual en blanco a la tabla auxiliar "uno".

La expansión de la tabla también se produce para las relaciones de grupo de origen uno a uno, pero mediante el uso de la semántica FULL OUTER JOIN. Garantiza que se agreguen filas virtuales en blanco a cada lado, cuando sea necesario.

Las filas virtuales en blanco son efectivamente Miembros desconocidos. Los miembros desconocidos representan violaciones de integridad referencial donde el valor de lado "muchos" no tiene el valor de "un" lado correspondiente. Idealmente, estos espacios en blanco no deberían existir, y se pueden eliminar limpiando o reparando los datos de origen.

A continuación se muestra cómo funciona la expansión de la tabla con un ejemplo animado:

animation-expanded-table.gif

Y su caso, si de acuerdo con la descripción oficial, si su dax en sql, al igual que:

select *from tableA A 

                     left join tableB B  on A.country=B.country 

                                     where B.Country="India"

¿Respondí a su pregunta? ¡Marca mi post como solución!


Saludos

Lucien

View solution in original post

Helpful resources

Announcements
Power BI December 2021 Update_carousel 768x460.jpg

Check it Out!

Click here to read more about the December 2021 Updates!

User Group Leader Meeting January 768x460.png

Calling all User Group Leaders!

Don't miss the User Group Leader meetings on January, 24th & 25th, 2022.

Jan 2022 Dev Camp 768x460 copy.png

Power BI Dev Camp- January 27th, 2022

Mark your calendars and join us for our next Power BI Dev Camp!