DAX: medida para obtener el recuento de ID de niños para un padre determinado

Un usuario Pregunto ✅

sandeepklce250

Hola equipo,

Tenemos una tabla de base de datos con los siguientes campos, que tienen una jerarquía de padres e hijos.

Tabla de origenTabla de origenNuestro requisito de informes es presentar la siguiente visualización tabular, para mostrar solo las categorías de ID de padres (C1, C2, C3) con el recuento de child_id asociados a mi padre. Algo como sigue:

Salida finalSalida final

Entonces, cuando selecciono Id -1, la medida debe proporcionar el recuento de child_id, que es 2 en este caso.

Soy un tipo de SQL y soy muy nuevo en DAX, esto se puede hacer usando una autounión para Id a ParentId en SQL.

¿Alguien puede proporcionar una expresión DAX para lo mismo?

Gracias,
Profundo sol

Zubair_Muhammad

hola @sandeepklce250

Prueba este método

Primero una columna calculada

PATH =
PATHITEM ( PATH ( TableName[Id], TableName[ParentId] ), 1, INTEGER )

Ahora esta MEDIDA

No. of Children =
VAR myvalue =
    SELECTEDVALUE ( TableName[Id] )
VAR mycategory =
    SELECTEDVALUE ( TableName[Category] )
RETURN
    CALCULATE (
        COUNT ( TableName[PATH] ),
        TableName[PATH] = myvalue,
        TableName[Category] <> mycategory,
        ALL ( TableName )
    )

Zubair_Muhammad

@sandeepklce250

Consulte también el archivo adjunto con sus datos de muestra y resultados

Zubair_Muhammad

hola @sandeepklce250

Prueba este método

Primero una columna calculada

PATH =
PATHITEM ( PATH ( TableName[Id], TableName[ParentId] ), 1, INTEGER )

Ahora esta MEDIDA

No. of Children =
VAR myvalue =
    SELECTEDVALUE ( TableName[Id] )
VAR mycategory =
    SELECTEDVALUE ( TableName[Category] )
RETURN
    CALCULATE (
        COUNT ( TableName[PATH] ),
        TableName[PATH] = myvalue,
        TableName[Category] <> mycategory,
        ALL ( TableName )
    )

sandeepklce250

En respuesta a Zubair_Muhammad

Gracias Zubair, esto funcionó. Muchas gracias por adjuntar el informe de muestra también.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *