Я довольно новичок в использовании MDX, я использую его в Power BI для создания различных отчетов.
Я на самом деле застрял с проблемой после многих исследований на разных страницах, связанных со временем.Диапазоны.
В Кубе есть измерение [Время]. [Дата]. [Дата], которое идет от 2014 до 2020 , поэтому я выясняюпосле многих часов, в течение которых все параметры, использующие Текущий элемент, не будут работать.
Мне нужно получить показатель за последние 7, 30, 60, 90 дней.
Я нашел два варианта:
ВАРИАНТ 1. Использование WITH и члена:
`WITH MEMBER [Measures].x AS SUM
({[Time].[Date].&[20190216]:[Time].[Date].&[20190222])
},[Measures].[Avg Loaned])
SELECT NON EMPTY {[Measures].x} on 0
,NON EMPTY ([Time].[Date].[Date]) on 1
FROM [MYCUBE]
WHERE (Some Conditions...)`
ВАРИАНТ 2. Использование WITH, Range и Member
`WITH
SET [Range] AS
{[Time].[Date].&[20190216]:[Time].[Date].&[20190222]}
MEMBER [Measures].x AS SUM
({nonempty([Range]*[Measures].[Avg Loaned])})
SELECT NON EMPTY {[Measures].x} on 0
,NON EMPTY ([Time].[Date].[Date]) on 1
FROM [MYCUBE]
WHERE (Some Conditions...)`
В обоих случаях я получаю правильные результаты, и, кажется, он продолжает работать, если я заменяю
**[Time].[Date].&[20190222]** --> StrToMember("[Time].[Date].&[" + Format(Now(), "YYYYMMDD") + "]")
Но это не работает, когда я заменяю первую дату
**[Time].[Date].&[20190216]** --> StrToMember('[Time].[Date].&[' + Format(dateadd('d',-7,Now()), 'YYYYMMDD') + "]")
ИЛИ
**[Time].[Date].&[20190216]** --> StrToMember('[Time].[Date].&[' + Format(dateadd('d',-7,cdate(Now())), 'YYYYMMDD') + "]")
ИЛИ
**[Time].[Date].&[20190216]** --> StrToMember('[Time].[Date].&[' + Format(cstr(dateadd('d',-7,Now())), 'YYYYMMDD') + "]")
Я не уверен, каков наилучший способ выполнить задачу, ВАРИАНТ 1 или2, но главный контрольно-пропускной пунктВот как я записываю начальный предел для диапазона, пытающегося использовать dateadd.
Заранее спасибо, я знаю, что есть много сообщений об этом, я пытался адаптировать примеры к своему коду, но мне не удалосьи через несколько дней я не уверен, в чем может быть проблема.
Rgds Pablo