Forum Discussion
Calculate salary between dates
These look like definitions for calculated columns rather than measures.
I think I'd try something like this:
SALARY during period = VAR periodStart = MAX ( MIN ( 'Salary History'[Effective Date] ), MIN ( 'Date'[Date] ) ) VAR periodEnd = MIN ( MAX ( 'Salary History'[Effective Date] ), MAX ( 'Date'[Date] ) ) VAR daysInPeriod = CALCULATE ( COUNTROWS ( 'Date' ), DATESBETWEEN ( 'Date'[Date], periodStart, periodEnd ), 'Date'[Is WeekDay] = TRUE ) RETURN daysInPeriod * [Daily Salary]
3 Replies
- amitchandakSuper User
Anonymous , if you want to use that you need to use max.
I think you need move that to filter clause
IF(max('Salary History'[Effective Date])<=LASTDATE('Date'[Date]), IF(max('Salary History'[Effective Date])>=FIRSTDATE('Date'[Date]), 'Salary History'[Effective Date], FIRSTDATE('Date'[Date])))
VAR periodEnd = IF(OR(ISBLANK(max('Salary History'[End Date])), max('Salary History'[End Date])>=FIRSTDATE('Date'[Date])), IF(ISBLANK(max('Salary History'[End Date])), LASTDATE('Date'[Date]), IF(max('Salary History'[End Date])<=LASTDATE('Date'[Date]),max('Salary History'[End Date]), LASTDATE('Date'[Date]))))Example filter , check current employee
- AnonymousNot applicable
Thanks for replying. Unfortunately I get the same performance issue as when I tried SELECTEDVALUE. I think I need to find a different way to filter the dates.
- AlexisOlsonSuper User
These look like definitions for calculated columns rather than measures.
I think I'd try something like this:
SALARY during period = VAR periodStart = MAX ( MIN ( 'Salary History'[Effective Date] ), MIN ( 'Date'[Date] ) ) VAR periodEnd = MIN ( MAX ( 'Salary History'[Effective Date] ), MAX ( 'Date'[Date] ) ) VAR daysInPeriod = CALCULATE ( COUNTROWS ( 'Date' ), DATESBETWEEN ( 'Date'[Date], periodStart, periodEnd ), 'Date'[Is WeekDay] = TRUE ) RETURN daysInPeriod * [Daily Salary]