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

Dos columnas calculadas con RELATEDTABLE dan como resultado una dependencia circular

Necesito encontrar a todas las personas que tienen un cierto valor en otra tabla, pero no en otro valor.

Por ejemplo, una persona que tiene una licencia válida y también una cancelación de esa licencia y se almacenan en una tabla de acciones de licencia.

Intenté crear estas dos columnas calculadas:

Recall = 
VAR _SEL = SELECTCOLUMNS ( RELATEDTABLE('LicenseStatus'), "ID", [Status] )
RETURN
IF ( "RECALL" IN _SEL, "YES", "NO" )

License = 
VAR _SEL = SELECTCOLUMNS ( RELATEDTABLE('LicenseStatus'), "ID", [Status] )
RETURN
IF ( "LICENSE" IN _SEL, "YES", "NO" )

Para poder hacer esta pregunta:

HaveCancelledLicense =
IF ( License = "YES" and Cancelled = "YES", "YES", "NO" )

pero obtengo "Error de dependencia circular" cuando creo la segunda columna calculada. ¿Por qué? ¿No se referencian entre sí?

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@hebe

¿Podría proporcionar algunos datos de muestra y resultados esperados?

Creé un archivo de muestra para mostrar el problema:

https://1drv.ms/u/c/9f00986c82fa1657/ES1QHM3WKKFMuq8kc5DWiwUB4BOZIRGqEfLSWLAOfobaBA?e=psTQYg

Las Columnas Calcluidas: "Emitido" y "Cancelado" están comentadas ya que crean una Referencia Circular si no están comentadas. ¿Por qué no se me permite tener más de una columna de cálculo con RELATEDTABLE en la misma tabla?

(Sí, sé que esta no es la solución óptima, pero así es como se ve la base de datos de origen y soy consciente de que hay otras (mejores) formas de resolver esto, pero quiero saber por qué esta solución no funciona 🙂 )

Hola @hebe ,

Puede probar el siguiente DAX para agregar columnas calculadas.

Issued = 
VAR _SEL= CALCULATE (
        COUNTROWS ( 'Status' ),
        ALLEXCEPT(Person,Person[Id]),
        'Status'[Status] = "Issued"
    )
RETURN IF ( _SEL > 0, "Yes", "No" )

Cancelled = 
VAR _SEL= CALCULATE (
        COUNTROWS ( 'Status' ),
        ALLEXCEPT(Person,Person[Id]),
        'Status'[Status] = "Cancelled"
    )
RETURN IF ( _SEL > 0, "Yes", "No" )

vdengllimsft_0-1727069664812.png


Consulte el pbix adjunto como referencia.

Saludos

Dengliang Li

Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

Gracias por su respuesta uzuntasgokberk. No creo que la respuesta en el post al que te refieres sea relevante en este caso. Tienen dos medidas que obviamente dependen del resultado de la otra y, por lo tanto, crean una dependencia circular. En mi caso, no hay dependencia entre las columnas calculadas, por lo que no entiendo por qué recibo el mensaje de error de referencia circular.

Todo esto es DAX. Cometí un error cuando escribí el código para "HaveCancelledLicense", por lo que tiene razón en que debería ser "&&" y no "y".

El problema parece ser que uso "RELATEDTABLE" en la misma tabla en dos columnas calculadas separadas. No entiendo por qué eso no estaría permitido. (Si ese es el problema). Son dos columnas completamente separadas y no veo por qué se afectarían mutuamente, pero cada una de ellas funciona por sí misma, pero no juntas.

Syndicate_Admin
Administrator
Administrator

Hola @hebe,

El problema del error de dependencia circular se compartió antes en la comunidad. Puede agregar una columna en PowerQuery.

https://community.fabric.microsoft.com/t5/Desktop/Circular-dependency/m-p/2978637#M1017963

Saludos
Gokberk Uzuntas

LinkedIn: https://www.linkedin.com/in/g%C3%B6kberk-uzunta%C5%9F-b43906198/

Medio: https://medium.com/@uzuntasgokberk

Si esta publicación ayuda, considere Acéptalo como solución y felicitaciones 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!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

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