2016-04-03 2 views
0

Я хочу создать рассчитанную меру в SSAS с использованием запроса MDX. Эта мера должна вернуть среднюю сумму в течение года и того же периода прошлого года. Я узнал о функции ParallelPeriod, но не смог ее использовать.SSAS mdx query ParallelPeriod

Мой запрос должен выглядеть следующим образом

(
AGGREGATE(
    {[TF_Product].[LastDayOfMonth]} 
    *{[TF_Product].[Category].&[Deposits]}, 
    [Measures].[Montant] 
) 
+ 
AGGREGATE(
    { Get the date of the same period last year using parallelperiod} 
    *{[TF_Product].[Category].&[Deposits]}, 
    [Measures].[Montant] 
) 
)/2 

Screenshot

Спасибо.

+0

Среднесуточный день? Итак, '(1jan-4Apr2015 + 1jan-4Apr2016)/numdays'? – whytheq

+0

Я хочу рассчитать например: (сумма в январе 2016 г. + сумма в январе 2015 г.)/2 – yasmine92

ответ

0

Что-то вроде этой работы?

... 
MEMBER [Measures].[Avg of 2 Mths] AS 
    Avg(
    {[Date].[Month].CurrentMember.Lag(12),[Date].[Month].CurrentMember} 
    [Measures].[Sales Quantity] 
) 
... 

Он работает в этом контексте:

WITH 
    MEMBER [Measures].[Avg of 2 Mths] AS 
    Avg 
    (
     { 
     [Date].[Calendar].CurrentMember.Lag(12) 
     ,[Date].[Calendar].CurrentMember 
     } 
,[Measures].[Internet Sales Amount] 
) 
SELECT 
    {[Measures].[Internet Sales Amount],[Measures].[Avg of 2 Mths]} ON 0 
,[Date].[Calendar].[Month] ON 1 
FROM [Adventure Works]; 

Это результат:

enter image description here

(755527,89 + 577314)/2 = 666420,95

+0

Это не работает! – yasmine92

+0

@ yasmine92 не самый полезный комментарий! – whytheq

+0

Извините! :(Я попробую еще раз – yasmine92

0

Это работает?

with member [Measures].AvgAmnt as 
(
AGGREGATE(
    {[TF_Product].[Calendar].Currentmember} 
    *{[TF_Product].[Category].Currentmember}, 
    [Measures].[Montant] 
) 
+ 
AGGREGATE(
    {ParallelPeriod([TF_Product].[Calendar].[Month],1,[TF_Product].[Calendar].Currentmember)} 
    *{[TF_Product].[Category].Currentmember}, 
    [Measures].[Montant] 
) 
)/2 

select [TF_Product].[Calendar].[Date].members * [TF_Product].[Category].members on 1, 
[Measures].AvgAmnt on 0 
from [SomeCube] 

Предположили, что у вас есть иерархия дат (календарь) на вашем кубе.

+0

Нет У меня нет иерархии времени в моем кубе. Я пытаюсь использовать ваш код но он не работает. Нет ли способа сделать это без иерархии? – yasmine92

+0

Понятие «ParallelPeriod» непригодно без временной иерархии. Имеются ли у вас непрерывные даты в кубе? Или у него есть даты, относящиеся к транзакциям (в в этом случае могут быть «пробелы»)? – SouravA

+0

Даты не соприкосновения У меня есть последний день месяца месяц и год – yasmine92

Смежные вопросы