Ssas 在现有MDX中添加列

Ssas 在现有MDX中添加列,ssas,mdx,Ssas,Mdx,我需要在现有MDX中添加一列,其值应该是1,1,1,1和2,2,2,如下所示 Top line income 1 Products (GL) 1 Net Interest Income (NII) 1 Non Interest Revenue (NIR) 1 Products ( Non GL) 1 Net Intere

我需要在现有MDX中添加一列,其值应该是1,1,1,1和2,2,2,如下所示

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:

与
成员[Measures].[Measures_Key]为
[ScoreCard Measures].[ScoreCard]。成员密钥
成员[Measures]。[Measures\u Group\u Key]为
[ScoreCard Measures][ScoreCard].Parent.Member\u Key
成员[度量][结构层次]为
[客户结构][省级结构].级别编号
将[ReportLevel]设置为
滤器
(
[报告级别][报告级别][报告级别]
,
Cint([报告级别][报告级别].属性(“结构级别”))
= 
Cint([度量][结构层次])
) 
成员[度量][顺序]为
[ScoreCard Measures][ScoreCard]。属性(“序列”)
成员[度量][缩进]为
[ScoreCard Measures][ScoreCard]。属性(“字体缩进”)
构件[测量][重量]为
[ScoreCard Measures][ScoreCard]。属性(“字体大小”)
成员[度量值][标题]为
[ScoreCardMeasures].[ScoreCard].属性(“值标题”)
成员[措施][校长1能力]AS
[ScoreCardMeasures].[ScoreCard].属性(“标题名称1”)
成员[措施].[Header2Caption]作为
[ScoreCardMeasures][ScoreCard]。属性(“标题名称2”)
成员[措施][校长3职位]为
[ScoreCardMeasures][ScoreCard]。属性(“标题名称3”)
成员[度量][实际]为
[度量值][度量值]
成员[度量][目标]为
[措施][措施目标]
成员[衡量][平均]为
[度量值][平均值]
挑选
{
[度量值][度量值键]
,[Measures]。[Measures\u Group\u Key]
,[措施][结构层次]
,[测量][顺序]
,[度量值][缩进]
,[度量值][重量]
,[Measures]。[标题]
,[措施].[校长1能力]
,[措施][校长2卡普顿]
,[措施][校长3能力]
,[措施][实际]
,[措施][目标]
,[测量值][平均值]
}柱上
,{
滤器
(
[报告级别]
* 
命令
(
后代
(
StrToMember(@Financial_Measure)
,[ScoreCard Measures]。[ScoreCard]。[度量代码]
,叶
)
,[测量][顺序]
,ASC
)
,
[度量值][活动指示器]0
)
}成排
来自[记分卡]
哪里
(
strotmember(@SiteStructure)
,StrToMember(@Time)
);

我不完全理解你是如何决定它应该是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)
  );
与
成员[Measures].[Measures_Key]为
[ScoreCard Measures].[ScoreCard]。成员密钥
成员[Measures]。[Measures\u Group\u Key]为
[ScoreCard Measures][ScoreCard].Parent.Member\u Key
成员[度量][结构层次]为
[客户结构][省级结构].级别编号
将[ReportLevel]设置为
滤器
(
[报告级别][报告级别][报告级别]
,
Cint([报告级别][报告级别].属性(“结构级别”))
= 
Cint([度量][结构层次])
) 
成员[度量][顺序]为
[ScoreCard Measures][ScoreCard]。属性(“序列”)
成员[度量][缩进]为
[ScoreCard Measures][ScoreCard]。属性(“字体缩进”)
构件[测量][重量]为
[ScoreCard Measures][ScoreCard]。属性(“字体大小”)
成员[度量值][标题]为
[ScoreCardMeasures].[ScoreCard].属性(“值标题”)
成员[措施][校长1能力]AS
[ScoreCardMeasures].[ScoreCard].属性(“标题名称1”)
成员[措施].[Header2Caption]作为
[ScoreCardMeasures][ScoreCard]。属性(“标题名称2”)
成员[措施][校长3职位]为
[ScoreCardMeasures][ScoreCard]。属性(“标题名称3”)
成员[度量][实际]为
[度量值][度量值]
成员[度量][目标]为
[措施][措施目标]
成员[衡量][平均]为
[度量值][平均值]
成员[措施][1or2]作为
案例
什么时候
[ScoreCard Measures].[ScoreCard].CurrentMember
是
[记分卡度量].[记分卡].[度量代码].[顶行收入]
那么1
什么时候
[ScoreCard Measures].[ScoreCard].CurrentMember
是
[记分卡度量].[记分卡].[度量代码].[产品(GL)]
那么1
什么时候
[ScoreCard Measures].[ScoreCard].CurrentMember
是
[记分卡度量].[记分卡].[度量代码].[在制品(记录的潜在客户数量)]
然后2
什么时候
[ScoreCard Measures].[ScoreCard].CurrentMember
是
[记分卡度量].[记分卡].[度量代码].[在制品(潜在客户总额)风险]
然后2
结束
挑选
{
[度量值][度量值键]
,[Measures]。[Measures\u Group\u Key]
,[措施][结构层次]
,[测量][顺序]
,[度量值][缩进]
,[度量值][重量]
,[Measures]。[标题]
,[措施].[校长1能力]
,[措施][校长2卡普顿]
,[措施][校长3能力]
,[措施][实际]
,[措施][目标]
,[测量值][平均值]
,[措施][1or2]
}柱上
,{
滤器
(
[报告级别]
* 
命令
(
后代
(
StrToMember(@Financial_Measure)
,[ScoreCard Measures]。[ScoreCard]。[度量代码]
,叶
)
,[测量][顺序]
,ASC
)
,
[度量值][活动指示器]0
)
}成排
来自[记分卡]
哪里
(
strotmember(@SiteStructure)
,StrToMember(@Time)
);

我不完全理解您是如何决定它应该是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)
  );
与
成员[Measures].[Measures_Key]为
[美苏