MDX Разница между ненулевыми и одинаковыми датами - PullRequest
0 голосов
/ 26 октября 2018

Привет! Мне нужно вычислить количество дней между счетами, чтобы набор данных был

Количество

Я создал элемент с последней датой, он возвращает последнюю дату по всему набору данных в качестве начала, но не уверен, как поступить. Возможно ли сделать это в MDX? если так как?

Спасибо

MEMBER [Measures].[Last date] AS
MAX([Date].[Full Date].[Full Date].MEMBERS,
iif(  [Measures].[Count] = 0,
 null,
    [Date].[Full Date].CurrentMember.MemberValue
     )
)

1 Ответ

0 голосов
/ 17 декабря 2018

Следующий пример поможет. Но учтите, что это будет считаться с начала месяца. Таким образом, если бы был заказ на 5 мая, а последний заказ был на 28 апреля, тогда разница была бы 4, а не 7.

with member measures.MonthDate as 
[Date].[Day of Month].CurrentMember.Properties ("Member_Value",TYPED)

member measures.LastOrderDate as 
(max(
FILTER(
[Date].[Day of Month].firstSibling:[Date].[Day of Month].currentmember.lag(1)
,[Measures].[Internet Order Count] > 0)
,measures.MonthDate)
)
member measures.DaysToLastOrder as 
(max(
FILTER(
[Date].[Day of Month].firstSibling:[Date].[Day of Month].currentmember
,[Measures].[Internet Order Count] > 0)
,measures.MonthDate)
-measures.LastOrderDate
)

select 
{
[Measures].[Internet Order Count],measures.DaysToLastOrder
}
on columns,
nonempty (([Date].[Month of Year].[Month of Year],[Date].[Day of Month].[Day of Month]),[Measures].[Internet Order Count])
on rows 
from 
[Adventure Works]
where ([Date].[Calendar Year].&[2012],[Customer].[City].&[London]&[ENG],[Product].[Subcategory].&[1]--,[Date].[Month of Year].&[11]
)

results

...