SSAS -> MDX -> Как создать запрос, который возвращает счетчик по дате, то есть по неделе - PullRequest
1 голос
/ 21 января 2012

Я получил недавний запрос на создание запроса, который возвращает 100 лучших клиентов по доходам в неделю.Я могу легко и просто вернуть 100 лучших клиентов в целом, но когда я добавляю атрибут недели, мой запрос заканчивается.Мне просто интересно, сталкивался ли кто-нибудь с этим или смог произвести сопоставимый запрос?

Мой запрос, который работает без настоящей недели.:

     SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS, 
NON EMPTY TopCount ( { ([Customer].[Customer Id].[Customer Id].ALLMEMBERS * [Customer].[Name].[Name].ALLMEMBERS  ) }, 100, [Measures].[Revenue])  ON ROWS 
FROM [DW]

Мой запрос с недельным подарком, который просто полностью останавливает время.:

SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS, 
NON EMPTY TopCount ( { ([Customer].[Customer Id].[Customer Id].ALLMEMBERS * [Customer].[Name].[Name].ALLMEMBERS * [Date Link].[Week].[Week].ALLMEMBERS ) }, 100, [Measures].[Revenue])  ON ROWS 
FROM [DW]

1 Ответ

1 голос
/ 25 января 2012

Разве это не даст вам 100 лучших клиентов и неделю, в которой они были лидерами?Таким образом, клиент А может быть на 1-й позиции на первой неделе, на 5-й позиции на второй неделе и т. Д., Но вы получите 100 строк, а не 100 в неделю?

Попробуйте что-то вроде

SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS, 
NON EMPTY 
{
[Date Link].[Week].[Week].ALLMEMBERS *
{
TopCount ( { ([Customer].[Customer Id].[Customer Id].ALLMEMBERS * [Customer].[Name].[Name].ALLMEMBERS ) }, 100, [Measures].[Revenue])  
}
}
ON ROWS 
FROM [DW]

Я думаю, что вам, возможно, придется использовать GENERATE вместо * с участниками недели, не могу вспомнить и пытаюсь сделать это на макушке;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...