Попробуйте это, избегая фильтра:
CREATE MEMBER CURRENTCUBE.[Measures].[FA and Team Product Count]
AS SUM(
Existing [Contact].[Contact ID].[Contact ID].Members
* Existing [Fund Sold].[Fund Sold ID].[Fund Sold ID].Members,
IIF([Measures].[FA And Team Gross Sales with FAs Including All Vehicles] >= 5000, 1, Null)
);
Если это все еще медленно, то разместите вычисление за FA And Team Gross Sales with FAs Including All Vehicles
Более эффективный способ выполнить это требует немного больше усилийно будет работать лучше, потому что избегает функции Existing
.Сначала вы должны создать столбец в DSV, который является вычисляемым столбцом в таблице фактов, используя это выражение:
CAST(null as int)
Затем создайте новую меру под названием «Количество продуктов FA и Team» в этом столбце.Разверните привязку столбца и выберите NullHandling = Сохранить.Это должна быть физическая мера, а не расчетная мера, потому что только совокупные назначения для физических мер агрегируются.
Затем добавьте следующую инструкцию в скрипт MDX (вместо расчетной меры, упомянутой вверху):
([Measures].[FA and Team Product Count],
[Contact].[Contact ID].[Contact ID].Members,
[Fund Sold].[Fund Sold ID].[Fund Sold ID].Members) =
IIF([Measures].[FA And Team Gross Sales with FAs Including All Vehicles] >= 5000, 1, Null);