«Получение 5 лучших продаж по годам и отображение результатов по кварталам» с использованием MDX - PullRequest
1 голос
/ 27 мая 2019

Я работаю с кубом продаж.
Я хочу получить топ-5 магазинов по годам и позже показать их продажи по кварталам в моем отчете.

Мне удалось получить топ5 магазин но четверть не только год!

SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS, 
NON EMPTY { ([DWH REF DATE].[H_CALENDER].[QUARTER NUM].ALLMEMBERS * TOPCOUNT([DWH REF STORE].[H_STORE].[STORE].ALLMEMBERS , 5  ,  [Measures].[Revenue] )) } 
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_VALUE, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( -{ [DWH REF STORE].[H_STORE].[TERRITORY].&[N/A].&[N/A] } ) ON COLUMNS FROM ( SELECT ( { [DWH REF DATE].[H_CALENDER].[YEAR NUM].&[2012] } ) ON COLUMNS FROM [SALES CUBE])) 

То, что я хочу, - это получить 5 лучших магазинов по годам, а после этого - четверть из 5 магазинов.

1 Ответ

1 голос
/ 27 мая 2019

Добро пожаловать в SO, так что давайте рассмотрим пример. Я пытаюсь получить топ-5 субпродуктов по интернет-продажам из куба adventureworks за 2013 год

select 
[Measures].[Internet Sales Amount]
on columns,
non empty
topcount
(
[Product].[Subcategory].[Subcategory],
5,
[Measures].[Internet Sales Amount]
)
on rows
from 
[Adventure Works]
where [Date].[Calendar].[Calendar Year].&[2013]

Результат enter image description here

Теперь попробуем разделить продажи на четверть

select 
[Measures].[Internet Sales Amount]
on columns,
non empty
[Date].[Calendar Quarter of Year].[Calendar Quarter of Year]
on rows
from 
(select  topcount([Product].[Subcategory].[Subcategory],5,[Measures].[Internet Sales Amount]) on 0 from [Adventure Works] )
where [Date].[Calendar].[Calendar Year].&[2013]

Результат

enter image description here

Редактировать: на основе комментария

select 
[Measures].[Internet Sales Amount]
on columns,
non empty
(
topcount
(
[Product].[Subcategory].[Subcategory],
5,
[Measures].[Internet Sales Amount]
),[Date].[Calendar Quarter of Year].[Calendar Quarter of Year])
on rows
from 
[Adventure Works]
where [Date].[Calendar].[Calendar Year].&[2013]

Результат enter image description here

...