Вам нужно использовать rank () и функцию фильтра. Посмотрите на пример ниже.
В приведенном ниже запросе перечислены интернет-продажи за год -месяцы
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS,
non empty ({[Date].[Calendar Year].[CY 2011],[Date].[Calendar Year].[CY 2012],[Date].[Calendar Year].[CY 2013]},[Date].[Month of Year].[Month of Year])
ON ROWS
FROM
[Adventure Works]
Результаты
Теперь оцените месяцы по годам и отфильтруйте их первым рандом
WITH
MEMBER [Measures].[Monthly_Ranking_InternetSales] AS
RANK( [Date].[Month of Year].CurrentMember,
ORDER( [Date].[Month of Year].[Month of Year].Members , [Measures].[Internet Sales Amount], BDESC)
)
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS,
non empty
filter( ({[Date].[Calendar Year].[CY 2011],[Date].[Calendar Year].[CY 2012],[Date].[Calendar Year].[CY 2013]},
ORDER ([Date].[Month of Year].[Month of Year], [Measures].[Monthly_Ranking_InternetSales] , BASC )
),[Measures].[Monthly_Ranking_InternetSales] <2)
ON ROWS
FROM
[Adventure Works]
Результат