DAX подсчитать сумму детских сумм - PullRequest
0 голосов
/ 20 февраля 2019

Я новичок в DAX, я раньше использовал MDX.У меня есть следующая формула в MDX

    CREATE 
  MEMBER CURRENTCUBE.[Measures].[Count Visit] AS [Measures].[Unique Contact Count]
  ;    

scope([Date Cheque].[YEAR-MONTH-DATE].[Month Of Year], [Measures].[Count Visit]);
this= Sum
        ({[Date Cheque].[YEAR-MONTH-DATE].CurrentMember.Children}
         ,[Measures].[Count Visit]);
end scope;

scope([Date Cheque].[YEAR-MONTH-DATE].[Calendar Year], [Measures].[Count Visit]);
this= Sum
        ({[Date Cheque].[YEAR-MONTH-DATE].CurrentMember.Children}
         ,[Measures].[Count Visit]);
end scope;

Я понимаю, что в DAX нет иерархий, поэтому я понятия не имею, как это сделать

1 Ответ

0 голосов
/ 20 февраля 2019

Как правило, вы можете использовать функции проверки фильтра в DAX, такие как ISFILTERED , ISCROSSFILTERED , HASONEVALUE и ISINSCOPE , дляопределить текущий уровень расчета.Это позволяет нам делать сложные вещи, для которых мы обычно используем оператор SCOPE в MDX.

Однако, в этом случае, кажется, что все, что вы хотите сделать, это всегда оценивать [Меры]. [УникальныйКоличество контактов] на дневном уровне, а затем сверните это до более высоких уровней.Для этого мы можем просто написать меру [Количество посещений] следующим образом, предполагая, что в вашей таблице «Проверка даты» содержится столбец [Дата] с дневным интервалом:

SUMX(VALUES('Date Cheque'[Date]), [Unique Contact Count])

SUMX является так называемой функцией итератора, которая будет оценивать 2-й аргумент для каждой строки в 1-м аргументе (который должен быть табличным выражением) и возвращать сумму 2-го аргумента.

...