Forum Discussion
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
- Syndicate_Admin
Administrator
Terminé materializando la tabla de unión interna, y agregué una columna calculada para hacer la verificación y filtrar en la columna.
- Syndicate_Admin
Administrator
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] ) - Syndicate_Admin
Administrator
Gracias por la respuesta