SSAS несвязанное измерение сценария
В нашем кубе SSAS у нас есть фактические и основанные на сценарии значения. Таблицы имеют следующую структуру:
╔═════════════╦══════════════╗
║ Scenario_ID ║ Scenario ║
╠═════════════╬══════════════╣
║ 1 ║ Worst Case ║
║ 2 ║ Default Case ║
║ 3 ║ Best Case ║
╚═════════════╩══════════════╝
Таблица фактов для сценария:
╔═════════╦═════════════╦═══════╗
║ Date_ID ║ Scenario_ID ║ Value ║
╠═════════╬═════════════╬═══════╣
║ ║ 1 ║ 5 ║
║ ║ 2 ║ 10 ║
║ ║ 3 ║ 15 ║
╚═════════╩═════════════╩═══════╝
Таблица фактов для фактического значения:
╔═════════╦═════════════╗
║ Date_ID ║ ActualValue ║
╠═════════╬═════════════╣
║ ║ 12 ║
╚═════════╩═════════════╝
У нас есть два требования:
А) Сравните фактическое с одним сценарием на основе фильтра:
╔═══════════╦═══════════════╦═════════════╗
║ Scenario ║ ScenarioValue ║ ActualValue ║
╠═══════════╬═══════════════╬═════════════╣
║ Best Case ║ 15 ║ 12 ║
╚═══════════╩═══════════════╩═════════════╝
Б) Сравните все сценарии с реальными:
╔════════════╦══════════════╦═══════════╦════════╗
║ Worst Case ║ Default Case ║ Best Case ║ Actual ║
╠════════════╬══════════════╬═══════════╬════════╣
║ 5 ║ 10 ║ 15 ║ 12 ║
╚════════════╩══════════════╩═══════════╩════════╝
На данный момент сценарий не имеет отношения к FactActual.
Проблема в том, что фактическое повторяется для каждого сценария ( A выглядит хорошо).
Если я устанавливаю IgnoreUnrelatedDimension в False, B) выглядит хорошо, но если я фильтрую, фактическое значение равно нулю.
2 ответа
Возможно, уже слишком поздно (говорит капитан задним числом), но размерный дизайн несовершенен. Этот вид сравнения был бы намного проще, если бы Actual был членом измерения Scenario: тогда группа мер, содержащая фактическое значение показателя, могла бы напрямую относиться к измерению Scenario. Такой дизайн привел бы к очень разреженному подкубу для неактуальных членов сценария, учитывая, что никто не заполняет гипотетическое значение прогноза для меры во всех кортежах.
В данный момент в вашем вопросе отсутствуют некоторые детали, особенно в отношении измерения даты среза / фильтрации, которое является общим для обеих групп мер (Actual и, назовем его "Неактуальным").
- На каком уровне детализации вы ожидаете использовать это измерение даты (и увидеть значимые результаты?)
- Какие элементы измерения Date вы используете в своих тестах? Что вы получаете, особенно в случае B?
Один из способов решения этой проблемы заключается в создании каждого из сценариев в качестве мер - имеющих "Наихудшее значение", "Значение по умолчанию" и "Наилучшее значение", после чего вы можете выбросить любое подмножество этих показателей в сводную таблицу (или во что бы вы ни представляли) и вы смеетесь.
Вы сможете разрезать все три по любым измерениям, которые соответствуют обеим группам мер (например, по дате).