Forum Discussion

EdouSav's avatar
EdouSav
Helper I
2 years ago
Solved

keep the right value between two dates

Hello !

 

i have three tables (calendar, service, and salary)

 

i would like to have the name of service in the salary table (be carrefoul : a employee can work in several service but not at the same time)

FYI : theres is no relationship beetween salary and service

 

thks a lot 

 

 

table service

table salary

 

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi EdouSav ,

     

    According to your description, here are my steps you can follow as a solution.

    (1) My test data is the same as yours.

    (2) We can create a calculated column in the salary table.

    nom = CALCULATE(MAX('service'[nom]),FILTER('service','service'[matricule]=EARLIER('salary'[matricule]) && 'service'[debut] <= EARLIER(salary[date]) && 'service'[fin] >= EARLIER('salary'[date])))

    (3) Then the result is as follows.

     

    If the above one can't help you get the desired result, please provide some sample data in your tables (exclude sensitive data) with Text format and your expected result with backend logic and special examples. It is better if you can share a simplified pbix file. Thank you.

     

    Best Regards,

    Neeko Tang

    If this post  helps, then please consider Accept it as the solution  to help the other members find it more quickly. 

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    There is not enough information in this post to understand the question.
    Maybe you need to show a Model view with relationships spelled out and an example of the before and after screens

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi EdouSav ,

     

    According to your description, here are my steps you can follow as a solution.

    (1) My test data is the same as yours.

    (2) We can create a calculated column in the salary table.

    nom = CALCULATE(MAX('service'[nom]),FILTER('service','service'[matricule]=EARLIER('salary'[matricule]) && 'service'[debut] <= EARLIER(salary[date]) && 'service'[fin] >= EARLIER('salary'[date])))

    (3) Then the result is as follows.

     

    If the above one can't help you get the desired result, please provide some sample data in your tables (exclude sensitive data) with Text format and your expected result with backend logic and special examples. It is better if you can share a simplified pbix file. Thank you.

     

    Best Regards,

    Neeko Tang

    If this post  helps, then please consider Accept it as the solution  to help the other members find it more quickly. 

    • EdouSav's avatar
      EdouSav
      Helper I

      Tanks for your reply, i understand youre solution but if in the table service there are duplicate value eg. a employee change job (Mr Martin service A during year 2020 and service B during 2021 ==> so in the salary table the service for 2020 is A and in 2021 the service is B

       

      have you got an idea

    • EdouSav's avatar
      EdouSav
      Helper I

      I Think your solution is true 🙂 

       

       

      thks a lot 🙂