Forum Discussion
Multiple row Context within Iterators
Again the table variable is evaluated once therefore CALCULATE cannot force context transition.
Thanks tamerj1 for your prompt response.
Sorry, i am still confused about it. Even if table variable is evaluated once, how will it change the working of 'Addcolumns' function. Suppose, the variable 'date_sale_table' generates a table in-memory.
Now, in 'Addcolumns' function, we are just iterating over 'date_sale_table' variable. We are nowhere evaluating it again.. Will iterating through it also amount to evaluation?
I hope, i am able to articulate my question.
- tamerj13 years agoCommunity Champion
Exactly. Evaluating the complete table not only the subset of rows that belongs to the current rows iterated by ADDCOLUMNS (which then converted by CALCULATE into a filter context).
and yes you are creating multiple row contexts created by nesting multiple iterators.
- tamerj13 years agoCommunity Champion
To explain further
the inner AVERAGEX evalutes the average sales for each row of the table variable which is fine. Howeverfor each single iteration of ADDCOLUMNS, the outer SUMX sums the averages of all the dates in the table variable which produces the total sales over ech single row of the created table.
- ARU_3 years agoAdvocate I
ok tamerj1 . Many thanks. appreciate your patience.
I get your point. Everything you have said makes sense to me now. However, i am still not able to accept the fact that the Calculate function doesnt invoke context transition.
I know you have said that table variable is evaluated once and hence context transition cannot be invoked. But still i don't understand why? Why a table variable which is already evaluated treated differently from other table objects.
I tried learning more about table variables, but unable to find any suitable explanation of its relationship with Calculate in the context of transition.