Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago

Dependencia circular

Hola, realmente estoy luchando con este. ¿Puede alguien ayudar?

dmbd1904_0-1638789105417.png

Tiempo de pie = DÓNDE Ubicación = COR_DepthRelatedExploratoryInformation[LocationDetails]
DÓNDE Fecha de inicio = COR_DepthRelatedExploratoryInformation[DateTimeStart]
DÓNDE Fecha de finalización = COR_DepthRelatedExploratoryInformation[DateTimeEnd]
DEVOLUCIÓN CALCULAR(SUMA(COR_TimeRelatedRemarksLocation[Duración de la hora de trabajo]),TODO(COR_TimeRelatedRemarksLocation),COR_ProgressByTime[LocationDetails]=Ubicación,COR_TimeRelatedRemarksLocation[DateTimeStart]>=Fecha de inicio,COR_TimeRelatedRemarksLocation[DateTimeEnd]<=Fecha de finalización)

Duración productiva = DÓNDE TimeStart = COR_DepthRelatedExploratoryInformation[DateTimeStart]
DÓNDE TimeEnd = COR_DepthRelatedExploratoryInformation[DateTimeEnd]
DÓNDE Horas de trabajo =
SUMX(
CALCULABLE(
'Calendario',
FECHAS ENTRE('Calendario'[Fecha],TimeStart,TimeEnd),
'Calendario'[Día de trabajo] = 1
),
DÓNDE CalStart = 'Calendario'[Fecha] + 'Calendario'[Hora de inicio]
DÓNDE CalEnd = 'Calendario'[Fecha] + 'Calendario'[Hora de finalización]
DEVOLUCIÓN
MÁXIMO(MIN(CalEnd ,TimeEnd) - MÁXIMO(CalStart,TimeStart),0) * 24
)
DÓNDE Ubicación = COR_DepthRelatedExploratoryInformation[LocationDetails]
DÓNDE Fecha de inicio = COR_DepthRelatedExploratoryInformation[DateTimeStart]
DÓNDE Fecha de finalización = COR_DepthRelatedExploratoryInformation[DateTimeEnd]
DÓNDE Tiempo de pie = CALCULAR(SUMA(COR_TimeRelatedRemarksLocation[Duración de la hora de trabajo]),TODO(COR_TimeRelatedRemarksLocation),COR_ProgressByTime[LocationDetails]=Ubicación,COR_TimeRelatedRemarksLocation[DateTimeStart]>=Fecha de inicio,COR_TimeRelatedRemarksLocation[DateTimeEnd]<=Fecha de finalización)
DÓNDE Tiempo productivo = Horas de trabajo-Tiempo de pie
Devolución Tiempo productivo

7 Replies

  • @dmbd1904 , Pruebe como. Supongo que está creando una nueva columna

    Tiempo de pie = Ubicación VAR = COR_DepthRelatedExploratoryInformation[LocationDetails]
    VAR Startdate = COR_DepthRelatedExploratoryInformation[DateTimeStart]
    VAR Enddate = COR_DepthRelatedExploratoryInformation[DateTimeEnd]
    RETURN CALCULATE(SUM(COR_TimeRelatedRemarksLocation[Working Hour Duration]),Filter(COR_TimeRelatedRemarksLocation ,COR_ProgressByTime[LocationDetails]=Location && COR_TimeRelatedRemarksLocation[DateTimeStart]>=Startdate && COR_TimeRelatedRemarksLocation[DateTimeEnd]<=Enddate) )

  • Hay @dmbd1904 ,

    Este es un error de dependencia circular en DAX.

    Debe agregar allexcept() a la función CALCULATE().

    Puede probar el siguiente código:

    Standing Time =
    VAR Location = COR_DepthRelatedExploratoryInformation[LocationDetails]
    VAR Startdate = COR_DepthRelatedExploratoryInformation[DateTimeStart]
    VAR Enddate = COR_DepthRelatedExploratoryInformation[DateTimeEnd]
    RETURN
        CALCULATE(
            SUM( COR_TimeRelatedRemarksLocation[Working Hour Duration] ),
            ALLEXCEPT( COR_TimeRelatedRemarksLocation, [primary key column] ),
            COR_ProgressByTime[LocationDetails] = Location,
            COR_TimeRelatedRemarksLocation[DateTimeStart] >= Startdate,
            COR_TimeRelatedRemarksLocation[DateTimeEnd] <= Enddate
        )
    

    Para obtener más detalles sobre el error de dependencia circular en DAX, consulte este artículo.

    https://www.sqlbi.com/articles/understanding-circular-dependencies/

    Saludos

    Equipo de apoyo a la comunidad _ chenwu zhu

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