Это выполнимо, если ваше измерение также имеет динамические вычисления.Позвольте мне показать вам другой пример, но идея та же.
У меня есть измерение [Повторные клиенты], если клиент (идентифицированный по электронной почте) подписался во второй, третий, четвертый раз - переместить этого клиента всоответствующий элемент этого измерения.
Во-первых, создайте измерение с одним элементом по умолчанию.
Во-вторых, добавьте несколько пустых элементов:
(вы можете пропустить его, поскольку dim-элементыматериализовано в вашем случае)
CREATE MEMBER CURRENTCUBE.[Repeat Customers].[Repeat Customers].[All].[One] as NULL;
CREATE MEMBER CURRENTCUBE.[Repeat Customers].[Repeat Customers].[All].[Two] as NULL;
CREATE MEMBER CURRENTCUBE.[Repeat Customers].[Repeat Customers].[All].[Three] as NULL;
CREATE MEMBER CURRENTCUBE.[Repeat Customers].[Repeat Customers].[All].[Four] as NULL;
CREATE MEMBER CURRENTCUBE.[Repeat Customers].[Repeat Customers].[All].[Five] as NULL;
CREATE MEMBER CURRENTCUBE.[Repeat Customers].[Repeat Customers].[All].[6+] as NULL;
CREATE MEMBER CURRENTCUBE.[Repeat Customers].[Repeat Customers].[All].[N/A] as NULL;
В-третьих, добавьте свои расчеты:
SCOPE([Repeat Customers].[Repeat Customers].[All].[One],[Measures].[Count]);
THIS=Count(Filter([Email].[Email].Members,([Measures].[Count],[Repeat Customers].[Repeat Customers].&[0])=1));
END SCOPE;
SCOPE([Repeat Customers].[Repeat Customers].[All].[Two],[Measures].[Count]);
THIS=Count(Filter([Email].[Email].Members,([Measures].[Count],[Repeat Customers].[Repeat Customers].&[0])=2));
END SCOPE;
...
SCOPE([Repeat Customers].[Repeat Customers].[All].[6+],[Measures].[Count]);
THIS=Count(Filter([Email].[Email].Members,([Measures].[Count],[Repeat Customers].[Repeat Customers].&[0])>=6));
END SCOPE;
SCOPE([Repeat Customers].[Repeat Customers].[All].[N/A],[Measures].[Count]);
THIS=([Measures].[Count],[Repeat Customers].[Repeat Customers].&[0])
-SUM({
[Repeat Customers].[Repeat Customers].[All].[One]
,[Repeat Customers].[Repeat Customers].[All].[Two]
,[Repeat Customers].[Repeat Customers].[All].[Three]
,[Repeat Customers].[Repeat Customers].[All].[Four]
,[Repeat Customers].[Repeat Customers].[All].[Five]
,[Repeat Customers].[Repeat Customers].[All].[6+]
},[Measures].[Count]);
END SCOPE;
Вывод:
![DynamicDim](https://i.stack.imgur.com/4TSxL.png)
Я думаю, что ваш фильтр должен использовать> = и <= Nr_Days_Calculated.Но не уверен, какую меру вы пытаетесь показать.<code>1 - TextA связано с [Measures].[Nr_Days_Calculated]
?Если да, у нас все хорошо, просто используйте вашу меру и SUM или в качестве агрегата вместо Count () в моем случае.
Это не лучшее решение по производительности (из-за динамического расчета), но все же оно работает,Надеюсь, это поможет.