Я изо всех сил пытаюсь понять это и надеялся, что кто-то там сможет помочь.Параметрированный запрос MDX в SSRS 2008 с колонками с несколькими рангами
У меня есть отчет SSRS (2008), который подключается непосредственно к кубу SSAS OLAP. У меня есть 5 разных столбцов, каждый из которых показывает другую меру, выбитую из измерения «Менеджер». У меня также есть параметризованные выпадающие списки в SSRS, которые фильтруют данные на основе различных вещей.
Вот код, который получил меня к этой точке:
SELECT
NON EMPTY{
[Measures].[Metric A]
,[Measures].[Metric B]
,[Measures].[TMetric C]
,[Measures].[Metric D]
,[Measures].[Metric E]
} ON COLUMNS
,NON EMPTY{
([Ops Hierarchy].[Manager].[Manager].ALLMEMBERS)
} DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM
(
SELECT
(
STRTOSET(@CompleteDateCalendar, CONSTRAINED)) ON COLUMNS
FROM
(
SELECT
(
STRTOSET(@City, CONSTRAINED)) ON COLUMNS
FROM
(
SELECT
(
STRTOSET(@Region, CONSTRAINED)) ON COLUMNS
FROM
(
SELECT
(
STRTOSET(@Country, CONSTRAINED)) ON COLUMNS
FROM
[CUBE]
)
)
)
)
WHERE
(
IIF(STRTOSET(@Country, CONSTRAINED).Count = 1, STRTOSET(@Country, CONSTRAINED)
, [Ops Hierarchy].[Division Name].currentmember)
, IIF(STRTOSET(@Region, CONSTRAINED).Count = 1, STRTOSET(@Region, CONSTRAINED)
, [Ops Hierarchy].[Region Name].currentmember)
, IIF(STRTOSET(@City, CONSTRAINED).Count = 1, STRTOSET(@City, CONSTRAINED)
, [Ops Hierarchy].[System Name].currentmember)
, IIF(STRTOSET(@CompleteDateCalendar, CONSTRAINED).Count = 1, STRTOSET(@CompleteDateCalendar, CONSTRAINED)
, [CompleteDate].[Calendar].currentmember)
)
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
И, конечно же, SSRS автомагически созданы соответствующие выпадающие для каждого @parameter.
Теперь, вот где мне нужна помощь:
У меня есть новое требование, чтобы добавить столбец «Ранг» для каждого показателя. Так, например, рядом со столбцом «Метрика А» появится еще один столбец «Метрический ранг», который оценивает менеджера в этой строке против других менеджеров, отображаемых в отчете (на основе параметров, выбранных в выпадающие).
Теперь я знаю, что я могу добавить:
WITH
SET [OrderedSet1] AS ORDER(FILTER([Ops Hierarchy].[Manager].MEMBERS,[Measures].[Metric A] <> NULL),[Measures].[Metric A],BASC)
MEMBER [Measures].[Metric A Rank] AS RANK([Ops Hierarchy].[Manager].CurrentMember,[OrderedSet1])
SET [OrderedSet2] AS ORDER(FILTER([Ops Hierarchy].[Manager].MEMBERS,[Measures].[Metric B] <> NULL),[Measures].[Metric B],BASC)
MEMBER [Measures].[Metric B Rank] AS RANK([Ops Hierarchy].[Manager].CurrentMember,[OrderedSet2])
и т.д., в верхней части запроса MDX, а затем ссылаться [Measures] [Метрика место] и [Measures] [Metric B.. Ранг] в моем заявлении select.
Что я не знаю, как это сделать, это отфильтровать наборы с выпадающими списками SSRS, чтобы я оценивал только то, что отображается в отчете.
Так, например, если у кого-то есть страна = «США», регион = «Юг», Город = «Атланта» и CompleteDate = «Янв 2012», выбранный в SSRS, и я оцениваю Метрику А против OrderedSet1, тогда я только хочу показать, как каждый менеджер входит в ряды других менеджеров в Атланте за январь 2012 года.
Как «параметризовать» наборы в предложении WITH с помощью выпадающих списков SSRS, чтобы я оценивал только подмножество, которое пользователь выбрал?
Заранее благодарим за вашу помощь!