Я изо всех сил пытаюсь выяснить это и надеялся, что кто-то там сможет помочь.
У меня есть отчет 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 автоматически создал соответствующиевыпадающие списки для каждого параметра @.
Теперь мне нужна помощь:
У меня есть новое требование добавить столбец «Ранг» для каждой метрики.Так, например, рядом со столбцом «Метрика А» будет другой столбец с именем «Метрика Ранг», который ранжирует менеджера в этой строке по сравнению с другими менеджерами, которые отображаются в отчете (на основе параметров, выбранных ввыпадающие списки).
Теперь я знаю, что могу добавить:
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, а затем сослаться на [Меры]. [Метрика A Rank] и[Показатели]. [Метрический ранг B] в моем предложении выбора.
Чего я не знаю, как это сделать, так это отфильтровывать наборы с помощью раскрывающихся списков SSRS, так что я сравниваю только с тем, что отображается наreport.
Так, например, если у кого-то в SSRS выбрано Country = "USA", Region = "South", City = "Atlanta" и CompleteDate = "Jan 2012", и я присвоил метрике A значение OrderedSet1затем я хочу показать, как каждый менеджер ранжируется с другими менеджерами в Атланте за январь 2012 года.
Как мне «параметризовать» наборы в предложении WITH, используя раскрывающиеся списки SSRS, чтобы ятолько рейтинг против сабвуфераустановить, что выбрал пользователь?
Заранее спасибо за помощь!