Я имею дело с требованием, как указано ниже, решение, которое у меня есть, либо не затрагивает полную проблему, либо чрезвычайно медленное, а во многих случаях просто невозможно. Нужна небольшая помощь по тому же.MDX для расчета значений начала месяца в отдельные даты
Проблема: нужен запрос, который отображает кучу мер с кросс-соединением из 4-х измерений (10 уровней) и измерения даты, мне нужно определить первое доступное значение мер за такие периоды времени, как Начало месяца, начало год Etc ..
у меня есть
- Dima - Уровень A1
- dimB - Леве B1, B2, B3
- DIMC - Уровень C1
- dimD - Уровень D1, D2, D3, D4, D5
- Дата Размер - дата, месяц, год как уровни.
- Measure - M1 Для M5
Запрос:
SELECT
NON EMPTY {[Measures].[M1],
[Measures].[M2],
[Measures].[M3],
[Measures].[M4],
[Measures].[M5],
[Measures].[M1SOM]} ON COLUMNS
,NON EMPTY
{
[DimA].[A1].[A1].ALLMEMBERS*
[DIMB].[B1].[B1].ALLMEMBERS*
[DIMB].[B2].[B2].ALLMEMBERS*
[DIMB].[B3].[B3].ALLMEMBERS*
[DIMB].[B4].[B4].ALLMEMBERS*
[DIMB].[B5].[B5].ALLMEMBERS*
[DIMC].[C1].[C1].ALLMEMBERS*
[DIMD].[D1].[D1].ALLMEMBERS*
[DIMD].[D2].[D2].ALLMEMBERS*
[DIMD].[D3].[D3].ALLMEMBERS*
[Date].[Date].[Date].ALLMEMBERS*
[Date].[Month].[Month].ALLMEMBERS*
} ON ROWS
FROM [Cube]
*** Этот запрос имеет все те Перекрестные соединения, как этот запрос будет власть набор данных отчета SSRS.
Мне нужно создать новую расчетную меру или реальную (постоянную меру), которая отображает начало месяца & Начало года Значения. Ниже приведены варианты, которые у меня есть в настоящее время. Предположим, что измерение M1 является тем, для которого мне нужны значения SOM и SOY.
Создать сохраненную меру (M1SOM) построен на мере M1 и обеспечивает функцию агрегации «FirstNonEmpty»: Это отлично работает, когда мы запускаем запрос на уровне месяца, то есть в приведенном выше запросе есть [Date ] [Месяц]. [Месяц]. Во всех случаях вместо [Дата]. [Дата]. [Дата]. Он отображает первое доступное непустое значение месяца. Однако это означает, что остальные меры агрегируются на уровне месяца. Если я хочу отображать ежедневные значения других мер вместе со значениями SOM для этой меры, она не будет работать, поэтому область теперь изменяется на одну дату, и я просто получаю ежедневное значение в измерении M1SOM.
Создайте расчетную меру (M1SOM), как показано ниже, а также запрос выше и то же самое произойдет. Невозможно отобразить значения ЗВОЛ на уровне суточной даты.
WITH MEMBER [Measures].[M1SOM] AS ([Date].[Date].FirstChild,[Measures].[M1])
Создать вычисляемый элемент, как показано ниже, Это работает!, однако, запрос абсолютно убивает мою машину и берет навсегда выполнение, если я запускаю его с более чем тремя уровнями в крест-соединении.
WITH MEMBER M1SOM AS Head(NonEmpty({[Date].[Date].Parent.Children}*[Measures].[M1SOM])).Item(0)
Есть ли лучший способ для достижения SOM и соевых расчетов на ежедневную уровне?
Благодаря
Srikanth
Да, так оно и есть. Имеет только OpenPeriod ([Дата]. [Дата]. [Дата]). Имя также выполняет трюк. – user3198708
Какова эффективность? Он все еще убивает вашу машину? – whytheq
Нет, это работает очень хорошо. – user3198708