Получить Топ 5 по разным годам MDX - PullRequest
0 голосов
/ 02 мая 2020

У меня есть топ-5 клиентов по годам, и я хочу создать запрос, который будет получать эту информацию в год в разные годы одновременно, я имею в виду:

select 
[Measures].[Ventas] 
on columns,
non empty
topcount
(
[Dim Cliente].[Company Name].Children,5,[Measures].[Ventas]
) 
on rows
from 
[DWH Northwind]
where 

[Dim Tiempo].[Año].&[1996]

TOP 5 1996

TOP 5 1996

Могу ли я получить Top 5 за 1996 и 1997 годы вместе в год?

Ответы [ 2 ]

3 голосов
/ 02 мая 2020

Вы можете использовать функцию Generate следующим образом:

select 
  [Measures].[Ventas] on columns,

  non empty Generate(
    { [Dim Tiempo].[Año].&[1995], [Dim Tiempo].[Año].&[1996] } as yy,
    topcount (yy.currentMember * [Dim Cliente].[Company Name].Children,5,[Measures].[Ventas]) 
  ) on rows

from [DWH Northwind

Таким образом, вы можете получить ТОП 5 за каждый доступный год одинаково:

select 
  [Measures].[Ventas] on columns,

  non empty Generate(
    [Dim Tiempo].[Año].members as yy,
    topcount (yy.currentMember * [Dim Cliente].[Company Name].Children,5,[Measures].[Ventas]) 
  ) on rows

from [DWH Northwind

Надеюсь, это поможет.

1 голос
/ 02 мая 2020

Попробуйте это

select 
[Measures].[Ventas] 
on columns,
non empty
{
topcount
(([Dim Tiempo].[Año].&[1996],[Dim Cliente].[Company Name].Children),5,[Measures].[Ventas]) 
,
topcount
(([Dim Tiempo].[Año].&[1997],[Dim Cliente].[Company Name].Children),5,[Measures].[Ventas]) 
}
on rows
from 
[DWH Northwind]
where 
...