Forum Discussion

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

Filtrar en Self Join

Por favor, tengo un escenario, donde obtengo una instantánea de una base de datos todos los días (fusione los archivos en una tabla). Hay diferentes preguntas que se podrían hacer en diferentes archivos, aunque somos particulares sobre 4 líneas de tiempo específicas, por ejemplo, la segunda semana de cada mes (eso significa que tendremos 12 de esos escenarios en un año). Estoy intentando comprobar si hay cambios de fecha en los registros para diferentes fechas de instantáneas.

He visto diferentes ejemplos donde la tabla se duplica en el modelo y luego se vuelve a unir sobre sí misma, pero esto no funciona para mí.

El enfoque que tomé fue pasar los registros de la línea de tiempo en una variable y luego unirme internamente a ellos, pero el chalLenge que tuve fue filtrar en las tablas de variables para verificar dónde las fechas en las oportunidades son diferentes.

idealmente en SQL, donde la fecha actual <> fecha anterior

ChangedDate =
VAR
Latestopp =
CALCULABLE(
SELECTCOLUMNS(«Ingresos»,
"Empresa",'Ingresos'[Empresa],
"CT",'Ingresos'[TC],
"Producto",'Ingresos'[Producto],
"Nombre",'Ingreso'[Nombre de venta],
"Oppid",'Ingreso'[Oportunidad],
"Fecha actual",'Ingresos'[Fecha],
"Ventas corrientes",'Ingresos'[Venta]
),
'Estado de ingresos'[Estado de carga] = "Último"
)
VAR
prevopp =

CALCULABLE(
SELECTCOLUMNS(«Ingresos»,
"Empresa",'Ingresos'[Empresa],
"CT",'Ingresos'[TC],
"Producto",'Ingresos'[Producto],
"Nombre",'Ingreso'[Nombre de venta],
"Oppid",'Ingreso'[Oportunidad],
"Fecha anterior",'Ingreso'[Fecha],
"Ventas anteriores",'Ingresos'[Venta]
),
'Income Status'[IsYear] = "sí",
'Estado de ingresos'[Indicador P_Week] = "1"
)
VAR
IJOIN =
NATURALINNERJOIN (Latestopp,prevopp)
Var
datechange =
CALCULTABLE(LJOIN,
)

)

Por favor, cualquier consejo sobre el dax anterior. Gracias

  • Creo que solo necesitas un paso más de filtro.

    ChangedDate =
    VAR Latestopp = [...]
    VAR prevopp = [...]
    VAR IJOIN = NATURALINNERJOIN ( Latestopp, prevopp )
    RETURN
        FILTER ( IJOIN, [Current Date] <> [Previous Date] )

3 Replies

  • Terminé materializando la tabla de unión interna, y agregué una columna calculada para hacer la verificación y filtrar en la columna.

  • Creo que solo necesitas un paso más de filtro.

    ChangedDate =
    VAR Latestopp = [...]
    VAR prevopp = [...]
    VAR IJOIN = NATURALINNERJOIN ( Latestopp, prevopp )
    RETURN
        FILTER ( IJOIN, [Current Date] <> [Previous Date] )