Не считается Pick Match() и Aggr. AGGR() и ValueList(). Synthetic Dimensions
В этой статье будет описана проблема “Не считается Pick Match() и Aggr. AGGR() и ValueList(). Synthetic Dimensions”. На практике было замечено, что если внутри конструкции Pick->Match->ValueList использовать несколько выражений Aggr, то конструкция не работает. Первое выражение рассчитывается, а последующие нет. Этот пример был получен в QlikView 11. Ниже будет показано решение проблемы.
Пример:
1 2 3 4 5 |
=Pick(Match(ValueList('value1','value2','value3'),'value1','value2','value3'), sum(aggr(sum(Выражение1),[Измерение 1])), sum(aggr(sum(Выражение2),[Измерение 2])), sum(aggr(sum(Выражение3),[Измерение 3],[Измерение 2])) ) |
Если заменить Pick->Match на IF, То выражение также не будет рассчитываться:
1 2 3 4 5 6 |
=if(ValueList('value1','value2','value3')='value1',sum(aggr(sum(Выражение1),[Измерение 1])), if(ValueList('value1','value2','value3')='value2',sum(aggr(sum(Выражение2),[Измерение 2])), if(ValueList('value1','value2','value3')='value3',sum(aggr(sum(Выражение3),[Измерение 3],[Измерение 2])) ) ) ) |
Для того, чтобы решить проблему, необходимо использовать вспомогательное слово TOTAL:
1 2 3 4 5 |
=Pick(Match(ValueList('value1','value2','value3'),'value1','value2','value3'), sum(TOTAL aggr(sum(Выражение1),[Измерение 1])), sum(TOTAL aggr(sum(Выражение2),[Измерение 2])), sum(TOTAL aggr(sum(Выражение3),[Измерение 3],[Измерение 2])) ) |