Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo puedo realizar un filtro OR en un DirectQuery, basado en una segunda tabla?

Tengo un conjunto de datos muy grande de registros de compra a los que accedo a través de DirectQuery.

Necesito encontrar todos los registros donde (a) Categoría = Transporte o (b) Proveedor está en una lista de proveedores específicos

La lista de proveedores de destino se encuentra en un archivo de Excel en SharePoint y se accede a ella en modo de importación.

¿Cómo puedo filtrar la tabla de registros de compras en función de los proveedores enumerados en la tabla Proveedor objetivo?

En la vida real, los registros de compra sin filtrar tienen millones de filas, y la tabla de proveedores objetivo tiene alrededor de 100.

data_mockup.png

Según tengo entendido, como estoy usando DirectQuery no puedo usar PowerQuery. Parece que RELATED y Natural Join también están fuera.

Soy bastante nuevo en PowerBI, pero tengo mucha otra experiencia en datos (SQL, Python, R).

Estoy ejecutando PowerBI Desktop Versión: 2.112.1161.0 de 64 bits (Dezember 2022).

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Gracias por el consejo. Desafortunadamente recibo el error:

> La columna 'Compras'[_IF] no se puede insertar en el origen de datos remoto y no se puede usar en este escenario.

Creo que esto se debe a que el origen de datos Compras es un origen de datos SAP de DirectQuery y las operaciones disponibles son limitadas.

@mmoore

¿Tiene el permiso de edición del conjunto de datos?

Es posible que deba confirmar que su permiso del origen de datos puede afectar su funcionamiento del conjunto de datos.

¡Saludos!

Yolo Zhu

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

No, tengo acceso de solo lectura al conjunto de datos. Es una organización grande y el lado de informes no tiene acceso de escritura.

@mmoore

Una columna calculada en una tabla de importación puede hacer referencia a otras tablas, pero una columna calculada en una tabla de DirectQuery puede seguir haciendo referencia solo a columnas de la misma tabla, pero puede usar una tabla calculada.

Tal vez pueda referirse al siguiente ejemplo.

Crear una nueva tabla

Table 2 = SUMMARIZE(FILTER('Table',OR([Category]="Transportation",[Supplier] in VALUES('Table (2)'[Target Supplier]))),[Purchase ID],[Supplier],[Category],"IF",if([Category]="Transportation"&&[Supplier] in VALUES('Table (2)'[Target Supplier]),"Kept because target su and tra",IF([Category]="Transportation","Kept because  tra",IF([Supplier] in VALUES('Table (2)'[Target Supplier]),"Kept because target su "))))

vxinruzhumsft_0-1675328281832.png

Puede consultar los siguientes enlaces sobre las limiaciones de la consulta directa en modo compuesto

https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-composite-models#considerations-a...

https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-composite-models#calculated-table...

¡Saludos!

Yolo Zhu

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

¡Gracias, esto lo hizo! Debido a que mi conjunto de datos es tan grande, tuve que codificar un filtro de fecha en la función FILTER por ahora, pero ahora se ejecuta y devuelve los datos correctos.

@mmoore

Según el permiso del conjunto de datos, la columna no se puede agregar porque no tiene el permiso de edición.

¡Saludos!

Yolo Zhu

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

@mmoore

Puede consultar el siguiente ejemplo.

Puede crear una nueva columna

_IF = if([Category]="Transportation"&&[Supplier] in VALUES('Table (2)'[Target Supplier]),"Kept because target su and tra",IF([Category]="Transportation","Kept because  tra",IF([Supplier] in VALUES('Table (2)'[Target Supplier]),"Kept because target su ")))

A continuación, filtre la columna para mostrar los datos sin valor en blanco.

vxinruzhumsft_0-1675231615455.png

Salida

vxinruzhumsft_1-1675231642627.png

Nota: Según el conjunto de fechas grande, es posible que tarde mucho tiempo en calcularlo.

¡Saludos!

Yolo Zhu

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors