Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Buscar valor entre dos tablas y fechas

Tal vez sea porque es lunes o algo así, pero simplemente no puedo entender lo que pensé que era una cosa simple, pero aquí estoy, unas horas más tarde ...

Problema:

Tengo dos tablas sin relación activa

La primera tabla es mi tabla de hechos que contiene todos los datos relacionados con las horas perforadas

FactTable

FechaHorasEmployeeId
29.12.20208A

30.12.2020

8A

31.12.2020

4A

1.1.2021

4A

2.1.2021

8A


Mi segunda tabla tiene información sobre las tasas salariales por empleado con una fecha de inicio determinada como la siguiente:

Tabla salarial

EmployeeIdSalaryFromDateTasa
A1.1.202050
A1.1.2021100
B1.1.200960

Mi resultado deseado

Usando la medida Dax, quiero calcular el costo por cada hora que realmente se perfora y se trabaja.

Estoy tratando de usar esto, por ejemplo.

Rate_Hourly =
VAR _salaryfromdate =
    SELECTEDVALUE ( SalaryTable[SalaryTableFromDate] )
RETURN
    CALCULATE (
        SUM ( SalaryTable[hourlySalaryTable] ),
        FILTER (
            FactTable,
            FactTable[date] >= _salaryfromdate
                && FactTable[date] <= TODAY ()
        )
    )

Pero esto solo me da la suma de todas las tarifas por hora.


¿Cómo puedo asegurarme de encontrar la tarifa por hora correcta dentro del rango de fechas dado por FactTable y compararla con SalaryTable?

Amable

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Probé esto y ver si funciona para ti

sevenhills_0-1634594016995.png

sevenhills_1-1634594031618.png

No se crean relaciones

sevenhills_2-1634594051064.png

Medir

Rate_Hourly =  
var _Rate = MAXX( 
    FILTER( SalaryTable, SalaryTable[EmployeeID] = SELECTEDVALUE(FactTable[EmployeeID])
                     && SalaryTable[SalaryFromDate] <= SELECTEDVALUE(FactTable[Date]))
                     , SalaryTable[Rate]
) 
return _Rate

FYI: Prefiero tener una columna calculada que medir si es un gran conjunto de datos

sevenhills_4-1634594180712.png

...

@sevenhills ¡Gracias por la pronta respuesta y por tomarse el tiempo para ayudar!

He implementado con éxito el código DAX y funciona. Sin embargo, se rompe en otro nivel granular cuando no estoy mirando las fechas. Vea cómo el total no se suma

Yggdrasill_0-1634745936669.png


¿Puedo hacer que esto funcione de alguna manera sin tener que usar ISINSCOPE() u otras funciones similares?

¿O debería simplemente hacer lo que mencionaste y usar una columna?

Atentamente

Por favor, ¿puede proporcionar lo que se espera de salida en su escenario superior (como una maqueta)

Difícil de visualizar a veces...

El resultado esperado es encontrar la tarifa por hora y multiplicar ese número con la cantidad de horas trabajadas. Eso debería definir el costo. Sin embargo, necesito poder ver el costo, independientemente de si estoy mirando a un empleado, dos o todos.


Ahora que lo pienso, ¿tal vez sea más fácil dejar que PQ calcule el costo en la tabla de hechos? Por lo tanto, cada vez que se registra una hora, se calcula otra columna para el costo detrás de esa hora.

  • DAX Proporcioné que la medida es de su publicación original y se basa en una fecha.
  • Lo que está preguntando es SCD2 - Tipo de tipo de hecho de ejemplo.
  • Déjame explicarte, por si no lo has señalado ya como este tipo.
    • Tienes dos tablas
    • Una tabla es un hecho, es decir, que contiene transacciones. en su caso, el empleado trabajó horas en cada fecha.
    • La segunda tabla es SCD, es decir, Cambiar lentamente la dimensión. Donde tiene fecha de inicio y tarifa efectivas para cada empleado. (y le falta la fecha de finalización efectiva, que no es un problema).
    • ¡Lo que está buscando es obtener la tarifa basada en la fecha de la transacción!
  • Puede echar un vistazo a estos ejemplos y ajustarse a sus necesidades.

Si mi análisis de su problema es incorrecto, entonces necesito más detalles.

Opcionalmente, puedes echar un vistazo

https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr...

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

Check out the June 2024 Power BI update to learn about new features.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors
Top Kudoed Authors