Forum Discussion

sodec's avatar
sodec
New Member
3 years ago
Solved

DAX measure with left outer join, multiple to multiple

I have one table in data model with one row per employee, their current end previous manager, and their current and previous output:

EmployeeIDCurrent ManagerCurrent OutputPrevious ManagerPrevious Output
1A10B5
2A20A15
3B30A

40

4B5B10

 

In the reports view, I show the sum of current and previous output by current and previous manager respectively:

Current ManagerCurrent Output
A30
B35

And:

Previous ManagerPrevious Output
A55
B15

 

I would like to left join the 'current output' table with the 'previous output' table on Current Manager = Previous Manager so I can calculate the output delta. What I want is this:

Current ManagerCurrent OutputPrevious OutputDelta Output
A3055-25
B351520

 

I have tried writing a measure to give the answer, but can't figure out how to pass the values of the delta:

 

Create Delta Table =
VAR x2=GENERATEALL(  
SUMMARIZE('EmployeeTable', EmployeeTable'[Current Manager],
            "Sum Current Output", CALCULATE (SUM('EmployeeTable'[Current Output])))  
,SUMMARIZE('EmployeeTable', 'EmployeeTable'[het_name],
            "Sum Previous Output", CALCULATE (SUM('EmployeeTable'[Previous Output])))
)  
RETURN
x2
  • You can create measures like

    Current Output Measure = SUM( 'Table'[Current Output])
    
    Previous Output Measure = 
    	CALCULATE(
    		SUM( 'Table'[Previous Output]),
    		REMOVEFILTERS( 'Table'[Current Manager]),
    		TREATAS( VALUES( 'Table'[Current Manager]), 'Table'[Previous Manager])
    	)
    	
    Delta = [Current Output Measure] - [Previous Output Measure]
    

2 Replies

  • You can create measures like

    Current Output Measure = SUM( 'Table'[Current Output])
    
    Previous Output Measure = 
    	CALCULATE(
    		SUM( 'Table'[Previous Output]),
    		REMOVEFILTERS( 'Table'[Current Manager]),
    		TREATAS( VALUES( 'Table'[Current Manager]), 'Table'[Previous Manager])
    	)
    	
    Delta = [Current Output Measure] - [Previous Output Measure]
    
  • This works well and is so much simpler than what I was trying to do. Thank you.