Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
5 years ago

Userelationship devuelve en blanco

Hola
Su ayuda en esto será apreciada.
A continuación se muestra el SQL que estoy intentando replicar en DAX.
Seleccione
Count(pg. ProgressId)
DESDE El progreso pg
INNER JOIN Project__ToProgress ptp ON ptp.progressId á pg.progressId
INNER JOIN Proyecto pj ON pj.uid á ptp. ProjectUid
INNER JOIN Project_sheet ps ON ps.uid á pj.project_sheet_id
DONDE ps.status 1 Y pj.archived- 0 Y ps.os_archived-0
Y pg.status 1
Y pj.accepted 1 Y pj.status 1
En mi modelo, la relación entre Project y Project_ToProgress está inactiva como se muestra en mi esquema a continuación.

Schema_Forum.jpg

Pero cuando incluyo userelationship en la consulta, devuelve en blanco pero sin él devuelve 1730 como en la consulta SQL que devuelve 1646.

ProgressUpdate ?

CALCULATE(

COUNT(Progress[progressId]),

USERELATIONSHIP(Project_ToProgress,Project),

FILTER(Progreso,Progreso[estado]-1),

FILTRO(Proyecto,Proyecto[estado]-1

&& Proyecto[aceptado]-1

&& Proyecto[archivado]-0),

FILTRO(Project_Sheet,Project_Sheet[estado]-1

&& Project_Sheet[os_archived]-0))

Apreciaría algo de ayuda en esto, ya que no sé lo que estoy haciendo mal.

Gracias de antemano.

8 Replies

  • @Emmy66 muy difícil de decir, tal vez lanzar algunos datos de muestra en pbix y compartir a través de una unidad de unidad / google, aunque no utilice FILTER para eliminar filas, tendrá un impacto en el rendimiento.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Hola @parry2k gracias por su respuesta. Consulte el enlace a pbix adjunto. El recuento devuelve 1730 como dije anteriormente usando la fórmula dax en el mensaje anterior, pero la salida esperada es 1646 según la consulta SQL

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        Hola

        ¿Podría describir su pregunta en inglés simple (en lugar de compartir una instrucción SQL), compartir un pequeño conjunto de datos y mostrar el resultado esperado.

  • Hola, @Emmy66

    Después de las pruebas, la fucción de filtro que escribió parece ser redundante. Puede eliminarlo y, a continuación, obtendrá el valor correcto.

    Así:3.png

    Saludos

    Janey Guo

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

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      hola @v-janeyg-msft , gracias por su respuesta. Las condiciones son necesarias. Lo que adjuntó es un extracto de muestra basado en las condiciones incluidas en el filtro en SQL para reducir el volumen de datos. Cada tabla tiene registros de más de 100K, por lo que sin los filtros voy a hacer sólo el recuento de registros y que no producirá el resultado requerido. Disculpas si mi explicación no estaba clara antes.

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        Hola, @Emmy66

        Tiene una gran cantidad de datosy los problemas son difíciles de encontrar. Le sugiero que optimice el modelo de datos (una tabla de hechos y tablas de dimensiones relacionadas). ¿Se puede cambiar la relación a una estructura estelar? Tal vez el problema se corrija.

        Saludos

        Janey Guo

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