Forum Discussion
Calculation causes "not enough memory" error
- 2 years ago
Thanks for your help.
I figured out different solution.
Instead of using [ALL (Category)] I used [REMOVEFILTERS(Category)] and magically performance has been fixed and now everything works as I expected.
Now my measure look like this:
_test = VAR __Total_STD = CALCULATE([_SumOfCol_n1] - [_SumOfCol_49] - [_SumOfCol_9] - [_SumOfCol_45] - [_SumOfCol_50] , V_Order_Cost_Breakdown_Pivot_ProfitabilityRep[Attribute_Nr] = 6 , REMOVEFILTERS(Category) ) VAR __Total_QUO = CALCULATE([_SumOfCol_n1] - [_SumOfCol_49] - [_SumOfCol_9] - [_SumOfCol_45] - [_SumOfCol_50] , V_Order_Cost_Breakdown_Pivot_ProfitabilityRep[Attribute_Nr] = 12 , REMOVEFILTERS(Category) ) VAR __Total = SWITCH(SELECTEDVALUE(Category[Category_Group_Nr]) , 1 , __Total_STD , __Total_QUO ) VAR __Result = SWITCH(SELECTEDVALUE(Category[Category_ShortDesc]) , "Total", __Total , "1000SQM", DIVIDE(__Total, [_SumCOL_NetSqm]) * 1000 , "1000KG", DIVIDE(__Total, [_SumCOL_OrderedWght]) * 1000 , "1000PCS", DIVIDE(__Total, [_SumCOL_OrderedQty]) * 1000 ) RETURN __Result
Hi Jarecki
try to replace
SELECTEDVALUE ( Category[Category_Group] )
by
MAXX ( SUMMARIZE ( FactTable, Category[Category_Group] ), Category[Category_Group] )
and replace SELECTEDVALUE ( Category[Category_ShortDesc] )
by
MAXX ( SUMMARIZE ( FactTable, Category[Category_ShortDesc] ), Category[Category_ShortDesc] )
- Jarecki2 years agoRegular Visitor
Hi,
thanks for quick reply.So I made a change regarding to your suggestions, but result is the same.
When I'm trying to add another field from different related table I get "not enought memory" error_test = VAR __Category = IF(MAXX(SUMMARIZE ( V_Order_Cost_Breakdown_Pivot_ProfitabilityRep , Category[Category_Group] ) , Category[Category_Group] ) = "Standard Cost", 6, 12 ) VAR __Total = CALCULATE( [_SumOfCol_n1] - [_SumOfCol_49] - [_SumOfCol_9] - [_SumOfCol_45] - [_SumOfCol_50] , V_Order_Cost_Breakdown_Pivot_ProfitabilityRep[Attribute_Nr] = __Category , ALL(Category) ) VAR __Result = SWITCH( MAXX(SUMMARIZE(V_Order_Cost_Breakdown_Pivot_ProfitabilityRep , Category[Category_ShortDesc] ) , Category[Category_ShortDesc] ), "Total", __Total, "1000SQM", DIVIDE(__Total, [_SumCOL_NetSqm]) * 1000, "1000KG", DIVIDE(__Total, [_SumCOL_OrderedWght]) * 1000, "1000PCS", DIVIDE(__Total, [_SumCOL_OrderedQty]) * 1000 ) RETURN __Result- tamerj12 years ago
Community Champion
Try the following
Return
If (
Not isempty ( V_Order_Cost_Breakdown_Pivot_ProfitabilityRep ), __Result)- Jarecki2 years agoRegular Visitor
Thanks for your help.
I figured out different solution.
Instead of using [ALL (Category)] I used [REMOVEFILTERS(Category)] and magically performance has been fixed and now everything works as I expected.
Now my measure look like this:
_test = VAR __Total_STD = CALCULATE([_SumOfCol_n1] - [_SumOfCol_49] - [_SumOfCol_9] - [_SumOfCol_45] - [_SumOfCol_50] , V_Order_Cost_Breakdown_Pivot_ProfitabilityRep[Attribute_Nr] = 6 , REMOVEFILTERS(Category) ) VAR __Total_QUO = CALCULATE([_SumOfCol_n1] - [_SumOfCol_49] - [_SumOfCol_9] - [_SumOfCol_45] - [_SumOfCol_50] , V_Order_Cost_Breakdown_Pivot_ProfitabilityRep[Attribute_Nr] = 12 , REMOVEFILTERS(Category) ) VAR __Total = SWITCH(SELECTEDVALUE(Category[Category_Group_Nr]) , 1 , __Total_STD , __Total_QUO ) VAR __Result = SWITCH(SELECTEDVALUE(Category[Category_ShortDesc]) , "Total", __Total , "1000SQM", DIVIDE(__Total, [_SumCOL_NetSqm]) * 1000 , "1000KG", DIVIDE(__Total, [_SumCOL_OrderedWght]) * 1000 , "1000PCS", DIVIDE(__Total, [_SumCOL_OrderedQty]) * 1000 ) RETURN __Result