2016-08-22 43 views
1

我需要在現有的MDX中添加一列,其值應爲1,1,1,1和2,2,2,如下所示。在現有的MDX中添加列

Top line income      1 
Products (GL)      1   
Net Interest Income (NII)   1 
Non Interest Revenue (NIR)   1 
Products (Non GL)     1 
Net Interest Income (NII)   1 
Non Interest Revenue (NIR)   1 

WIP (No. of Prospects Logged)   2 
WIP (Prospects Total Amount) Exposure 2 
WIP (Prospects Total Amount) Deposits 2 
Accepted Payouts in Progress (volume) 2 
Accepted Payouts in Progress Exposure 2 
Approval Rate (%)      2 
Rejection Rate (Not taken up) (%)  2 
... 
... 

如何在現有查詢中實現此目的?

MDX:

WITH 
    MEMBER [Measures].[Measure_Key] AS 
    [ScoreCardMeasures].[ScoreCard].Member_Key 
    MEMBER [Measures].[Measure_Group_Key] AS 
    [ScoreCardMeasures].[ScoreCard].Parent.Member_Key 
    MEMBER [Measures].[Structure_Level] AS 
    [CustomerStructure].[Provincial Structure].LEVEL_NUMBER 
    SET [ReportLevel] AS 
    Filter 
    (
     [Report Levels].[Report Level].[Report Level] 
    , 
     Cint([Report Levels].[Report Level].Properties("Structure Level")) 
     = 
     Cint([Measures].[Structure_Level]) 
    ) 
    MEMBER [Measures].[Sequence] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Sequence") 
    MEMBER [Measures].[Indent] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Font Indent") 
    MEMBER [Measures].[Weight] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Font Weight") 
    MEMBER [Measures].[Header] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Values Header") 
    MEMBER [Measures].[Header1Caption] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Header Name1") 
    MEMBER [Measures].[Header2Caption] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Header Name2") 
    MEMBER [Measures].[Header3Caption] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Header Name3") 
    MEMBER [Measures].[Actual] AS 
    [Measures].[Measure Value] 
    MEMBER [Measures].[Target] AS 
    [Measures].[Measure Target] 
    MEMBER [Measures].[Average] AS 
    [Measures].[Average Value] 
SELECT 
    { 
    [Measures].[Measure_Key] 
    ,[Measures].[Measure_Group_Key] 
    ,[Measures].[Structure_Level] 
    ,[Measures].[Sequence] 
    ,[Measures].[Indent] 
    ,[Measures].[Weight] 
    ,[Measures].[Header] 
    ,[Measures].[Header1Caption] 
    ,[Measures].[Header2Caption] 
    ,[Measures].[Header3Caption] 
    ,[Measures].[Actual] 
    ,[Measures].[Target] 
    ,[Measures].[Average] 
    } ON COLUMNS 
,{ 
    Filter 
    (
     [ReportLevel] 
     * 
     Order 
     (
      Descendants 
      (
      StrToMember(@Financial_Measure) 
      ,[ScoreCardMeasures].[ScoreCard].[Measure Code] 
      ,LEAVES 
     ) 
     ,[Measures].[Sequence] 
     ,ASC 
     ) 
    , 
     [Measures].[Active Indicator] <> 0 
    ) 
    } ON ROWS 
FROM [ScoreCard] 
WHERE 
    (
    StrToMember(@SiteStructure) 
    ,StrToMember(@Time) 
); 

enter image description here

回答

0

我不完全瞭解你的決定,如果它應該是一個1或2 - 問題不說清楚。

如果你只是希望它硬編碼到MDX那麼這可能是一個辦法:

WITH 
    MEMBER [Measures].[Measure_Key] AS 
    [ScoreCardMeasures].[ScoreCard].Member_Key 
    MEMBER [Measures].[Measure_Group_Key] AS 
    [ScoreCardMeasures].[ScoreCard].Parent.Member_Key 
    MEMBER [Measures].[Structure_Level] AS 
    [CustomerStructure].[Provincial Structure].LEVEL_NUMBER 
    SET [ReportLevel] AS 
    Filter 
    (
     [Report Levels].[Report Level].[Report Level] 
    , 
     Cint([Report Levels].[Report Level].Properties("Structure Level")) 
     = 
     Cint([Measures].[Structure_Level]) 
    ) 
    MEMBER [Measures].[Sequence] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Sequence") 
    MEMBER [Measures].[Indent] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Font Indent") 
    MEMBER [Measures].[Weight] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Font Weight") 
    MEMBER [Measures].[Header] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Values Header") 
    MEMBER [Measures].[Header1Caption] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Header Name1") 
    MEMBER [Measures].[Header2Caption] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Header Name2") 
    MEMBER [Measures].[Header3Caption] AS 
    [ScoreCardMeasures].[ScoreCard].Properties("Header Name3") 
    MEMBER [Measures].[Actual] AS 
    [Measures].[Measure Value] 
    MEMBER [Measures].[Target] AS 
    [Measures].[Measure Target] 
    MEMBER [Measures].[Average] AS 
    [Measures].[Average Value] 
    MEMBER [Measures].[1or2] AS 
    CASE 
     WHEN 
      [ScoreCardMeasures].[ScoreCard].CurrentMember 
     IS 
      [ScoreCardMeasures].[ScoreCard].[Measure Code].[Top Line Income] 
     THEN 1 
     WHEN 
      [ScoreCardMeasures].[ScoreCard].CurrentMember 
     IS 
      [ScoreCardMeasures].[ScoreCard].[Measure Code].[Products (GL)] 
     THEN 1 
     WHEN 
      [ScoreCardMeasures].[ScoreCard].CurrentMember 
     IS 
      [ScoreCardMeasures].[ScoreCard].[Measure Code].[WIP (No. of Prospects Logged)] 
     THEN 2 
     WHEN 
      [ScoreCardMeasures].[ScoreCard].CurrentMember 
     IS 
      [ScoreCardMeasures].[ScoreCard].[Measure Code].[WIP (Prospects Total Amount) Exposure] 
     THEN 2 
    END 
SELECT 
    { 
    [Measures].[Measure_Key] 
    ,[Measures].[Measure_Group_Key] 
    ,[Measures].[Structure_Level] 
    ,[Measures].[Sequence] 
    ,[Measures].[Indent] 
    ,[Measures].[Weight] 
    ,[Measures].[Header] 
    ,[Measures].[Header1Caption] 
    ,[Measures].[Header2Caption] 
    ,[Measures].[Header3Caption] 
    ,[Measures].[Actual] 
    ,[Measures].[Target] 
    ,[Measures].[Average] 
    ,[Measures].[1or2] 
    } ON COLUMNS 
,{ 
    Filter 
    (
     [ReportLevel] 
     * 
     Order 
     (
      Descendants 
      (
      StrToMember(@Financial_Measure) 
      ,[ScoreCardMeasures].[ScoreCard].[Measure Code] 
      ,LEAVES 
     ) 
     ,[Measures].[Sequence] 
     ,ASC 
     ) 
    , 
     [Measures].[Active Indicator] <> 0 
    ) 
    } ON ROWS 
FROM [ScoreCard] 
WHERE 
    (
    StrToMember(@SiteStructure) 
    ,StrToMember(@Time) 
); 
+0

感謝whytheq, 它爲我,就像我想要的工作。是的,我想硬編碼價值。 再次感謝您的時間。 其實我已經添加了這個列,因爲我想使用報告深入這些值。所有1都應該有一個+ sumbol,所有兩個都在另一個+符號之下,等等...... 你知道我們如何在SSRS中使用這個新添加的列來實現這一點。我們添加了此列,因爲所有值都只在一列中,所以我無法在報告級別進行分組。 – ramu

+0

我對ssrs不太瞭解,但我認爲+符號是作爲隱藏報告的詳細部分的動態方式添加的?在Tablix屬性 - 「顯示可以通過此項目切換」設置? – whytheq