Я использую MS SQL Server 2008 R2.
У меня проблема, пожалуйста, извините за длинное объяснение.
У нас есть куб SSAS. В настоящее время он находится в стадии разработки, но частично работает и доступен через Excel.
Есть проекты: иерархическое родительско-дочернее измерение
Проекту назначены ресурсы (например, человеко-часы, строительные материалы, техника): измерение с типами ресурсов, таблица фактов M2M ProjectId-ResourceId-UnitsCount-Cost
Для проектов существуют вехи: измерение с типами вех (некоторые определены), таблица фактов M2M: ProjectId-MilestoneId -... даты вех: запланировано / фактическое начало / завершение
Это упрощенная схема.
Мне нужно создать отчет MS Reporting Services со следующими столбцами:
- Иерархия проектов
- несколько столбцов с предопределенным и «жестко закодированным» количеством типов ресурсов. Например, бизнес хочет видеть колоссальное количество потраченных человеко-часов и потребление бетона в кубометрах. Эти два пункта могут быть жестко закодированы в запросе.
- несколько столбцов с предопределенными и «жестко закодированными» датами типа вехи
это тоже упрощенная схема, нужно больше столбцов с другими срезами измерений ...
Проблема в том, что я не могу найти элегантный способ создания этого отчета.
в моей текущей версии мне нужно создать 2 набора данных и запросить данные о ресурсах и этапах в отдельных запросах MDX.
тогда мне нужно использовать функцию RS-lookup, чтобы объединить данные в результате отчета.
Пожалуйста, укажите:
- есть ли возможность запросить эти данные в одном запросе MDX. когда я пытаюсь что-то вроде этого:
union ({{[Dim Resource]. [Measure]. [человеко-час]} + {[Dim Resource]. [Measure]. [cub-meter]}},
{[Dim Milestone]. [Milestone Type]. [ProjectStart]}) У меня ошибка «другая размерность». Есть обходные пути?
- если мне нужно вывести отформатированное значение, например: "X 'человеко-час" / Y "кубометр", я должен использовать функцию поиска для получения обеих частей формулы - лучше?
- Могу ли я запросить эти данные другим способом?
Пожалуйста, укажите направление поиска в Google
или ... должен ли я просто запросить данные из исходных таблиц (это допускается ограничениями безопасности) с помощью SQL
заранее спасибо