Следующий пример поможет. Но учтите, что это будет считаться с начала месяца. Таким образом, если бы был заказ на 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]
)