Из вашего вопроса я предполагаю, что на самом деле у вас нет таблицы измерений Status в вашем источнике данных. Вместо этого у вас есть определенное измерение, которое использует столбец в таблице фактов. Это прекрасно работает, но не позволяет вам определить фиксированный набор членов для этого измерения ... вы в основном застряли на фактах, которые у вас есть.
Решение, как я вижу, состоит в том, чтобы создать отдельную таблицу с именем DimStatus и предварительно заполнить ее всеми действительными состояниями, которые могут использоваться вашими фактами, и иметь таблицу фактов, ссылающуюся на измерение Status Таблица.
Тогда все будет работать так, как вы хотите. Вы можете автоматически скрывать неиспользуемые элементы или включать всех из них, или набор только тех, которые вам нужны.
Одно предостережение заключается в том, что он будет показывать (ноль) вместо 0, если нет соответствующих фактов. Вы можете обойти это с помощью простого ИИФ (ISEMPTY ()):
WITH MEMBER
[ZeroCount] AS
IIF(ISEMPTY([Measures].[Count]), 0, [Measures].[Count])
SELECT [ZeroCount] ON COLUMNS,
[Status].Members on ROWS
FROM [MyCube]
Это покажет все статусы и либо количество, либо ноль. К сожалению, это требует изменений в вашем источнике данных и кубе, так что, надеюсь, это вариант для вас.
Я играл с некоторыми запросами, и я не думаю, что это можно сделать проще. Вы не можете создать набор с недопустимыми членами - это создаст недопустимые кортежи, и ничего не будет работать должным образом. Я также попробовал "взломать", и не получил его работать, как ожидалось.