Параметризованный запрос MDX в SSRS 2008 с несколькими столбцами ранга - PullRequest
2 голосов
/ 07 февраля 2012

Я изо всех сил пытаюсь выяснить это и надеялся, что кто-то там сможет помочь.

У меня есть отчет 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, чтобы ятолько рейтинг против сабвуфераустановить, что выбрал пользователь?

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 05 июля 2012

в декларации Set вы можете использовать

SET [OrderedSet1] AS ORDER(FILTER([Ops Hierarchy].[Manager].MEMBERS*
[Ops Hierarchy].[System Name].currentmember
,[Measures].[Metric A] <> NULL),[Measures].[Metric A],BASC)
...