Ssas 计算成员,作为由元组和集合过滤的现有度量值

Ssas 计算成员,作为由元组和集合过滤的现有度量值,ssas,mdx,olap,olap-cube,ssas-2012,Ssas,Mdx,Olap,Olap Cube,Ssas 2012,我希望在OLAP多维数据集上使用SQL Server Data Tools Analysis Services创建计算成员,该多维数据集结合了以下过滤方法: 元组 ( [Enrolment Planning Actuals].[Year].&[1], [Enrolment Planning Actuals].[Attribute 1].&[Y], [Enrolment Planning Actuals].[Attribute 2].&[N],

我希望在OLAP多维数据集上使用SQL Server Data Tools Analysis Services创建计算成员,该多维数据集结合了以下过滤方法:

元组

(
    [Enrolment Planning Actuals].[Year].&[1],
    [Enrolment Planning Actuals].[Attribute 1].&[Y],
    [Enrolment Planning Actuals].[Attribute 2].&[N],
    [Enrolment Planning Actuals].[Attribute 3].&[N],
    [Measures].[Count]
)
设置为单个成员

SUM(    
    EXCEPT(
        [Enrolment Planning Actuals].[Year].[Year],
        {
            [Enrolment Planning Actuals].[Year].&[1]
        }
    ),
    [Measures].[Count]
)   
[注册计划实际值].[Year]
的成员值为1、2、3、4,我基本上希望计算出的成员提供
[度量值].[Count]
过滤条件:

  • 包括所有
    [入学计划实际值].[Year]
    成员,但
    [入学计划实际值].[Year]和[1]
  • [报名计划实际值].[属性1]和[Y]
  • [报名计划实际值].[属性2]和[N]
  • [报名计划实际值].[Attribute 3]和[N]
我认识到在尝试组合这些过滤器时,
SUM
函数可能是错误的方法

到目前为止,我发现这篇文章的公认答案非常有用


也许从根本上说,这种思维方式有问题。欢迎您的建议,谢谢。

您就快到了,伙计

仅扩展了
集合
元组
的概念,并添加了
交叉连接
*
的概念,以下是应该起作用的:

WITH MEMBER Measures.YourCalculatedMember AS

SUM(
    EXCEPT(
            [Enrolment Planning Actuals].[Year].[Year],
            {
                [Enrolment Planning Actuals].[Year].&[1]
            }
          ) *
    [Enrolment Planning Actuals].[Attribute 1].&[Y] *
    [Enrolment Planning Actuals].[Attribute 2].&[N] *
    [Enrolment Planning Actuals].[Attribute 3].&[N]
    ,
    [Measures].[Count]
  )

你快到了,伙计

仅扩展了
集合
元组
的概念,并添加了
交叉连接
*
的概念,以下是应该起作用的:

WITH MEMBER Measures.YourCalculatedMember AS

SUM(
    EXCEPT(
            [Enrolment Planning Actuals].[Year].[Year],
            {
                [Enrolment Planning Actuals].[Year].&[1]
            }
          ) *
    [Enrolment Planning Actuals].[Attribute 1].&[Y] *
    [Enrolment Planning Actuals].[Attribute 2].&[N] *
    [Enrolment Planning Actuals].[Attribute 3].&[N]
    ,
    [Measures].[Count]
  )

你快到了,伙计

仅扩展了
集合
元组
的概念,并添加了
交叉连接
*
的概念,以下是应该起作用的:

WITH MEMBER Measures.YourCalculatedMember AS

SUM(
    EXCEPT(
            [Enrolment Planning Actuals].[Year].[Year],
            {
                [Enrolment Planning Actuals].[Year].&[1]
            }
          ) *
    [Enrolment Planning Actuals].[Attribute 1].&[Y] *
    [Enrolment Planning Actuals].[Attribute 2].&[N] *
    [Enrolment Planning Actuals].[Attribute 3].&[N]
    ,
    [Measures].[Count]
  )

你快到了,伙计

仅扩展了
集合
元组
的概念,并添加了
交叉连接
*
的概念,以下是应该起作用的:

WITH MEMBER Measures.YourCalculatedMember AS

SUM(
    EXCEPT(
            [Enrolment Planning Actuals].[Year].[Year],
            {
                [Enrolment Planning Actuals].[Year].&[1]
            }
          ) *
    [Enrolment Planning Actuals].[Attribute 1].&[Y] *
    [Enrolment Planning Actuals].[Attribute 2].&[N] *
    [Enrolment Planning Actuals].[Attribute 3].&[N]
    ,
    [Measures].[Count]
  )

我认为您甚至可以删除度量并在其中一个属性层次结构上创建成员。然后,您可以使用不同的措施来对付它:

WITH MEMBER [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember] AS
SUM(
    EXCEPT(
            [Enrolment Planning Actuals].[Year].[Year],
            {
                [Enrolment Planning Actuals].[Year].&[1]
            }
          ) *
    [Enrolment Planning Actuals].[Attribute 1].&[Y] *
    [Enrolment Planning Actuals].[Attribute 2].&[N] *
    [Enrolment Planning Actuals].[Attribute 3].&[N]
  )
SELECT
   {
     [Measures].[Count],
     [Measures].[Revenue]
   } on 0,
   {  
     [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember], 
     [Enrolment Planning Actuals].[Attribute 1].&[Y]
   } on 1
FROM [YourCube];

我认为您甚至可以删除度量并在其中一个属性层次结构上创建成员。然后,您可以使用不同的措施来对付它:

WITH MEMBER [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember] AS
SUM(
    EXCEPT(
            [Enrolment Planning Actuals].[Year].[Year],
            {
                [Enrolment Planning Actuals].[Year].&[1]
            }
          ) *
    [Enrolment Planning Actuals].[Attribute 1].&[Y] *
    [Enrolment Planning Actuals].[Attribute 2].&[N] *
    [Enrolment Planning Actuals].[Attribute 3].&[N]
  )
SELECT
   {
     [Measures].[Count],
     [Measures].[Revenue]
   } on 0,
   {  
     [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember], 
     [Enrolment Planning Actuals].[Attribute 1].&[Y]
   } on 1
FROM [YourCube];

我认为您甚至可以删除度量并在其中一个属性层次结构上创建成员。然后,您可以使用不同的措施来对付它:

WITH MEMBER [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember] AS
SUM(
    EXCEPT(
            [Enrolment Planning Actuals].[Year].[Year],
            {
                [Enrolment Planning Actuals].[Year].&[1]
            }
          ) *
    [Enrolment Planning Actuals].[Attribute 1].&[Y] *
    [Enrolment Planning Actuals].[Attribute 2].&[N] *
    [Enrolment Planning Actuals].[Attribute 3].&[N]
  )
SELECT
   {
     [Measures].[Count],
     [Measures].[Revenue]
   } on 0,
   {  
     [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember], 
     [Enrolment Planning Actuals].[Attribute 1].&[Y]
   } on 1
FROM [YourCube];

我认为您甚至可以删除度量并在其中一个属性层次结构上创建成员。然后,您可以使用不同的措施来对付它:

WITH MEMBER [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember] AS
SUM(
    EXCEPT(
            [Enrolment Planning Actuals].[Year].[Year],
            {
                [Enrolment Planning Actuals].[Year].&[1]
            }
          ) *
    [Enrolment Planning Actuals].[Attribute 1].&[Y] *
    [Enrolment Planning Actuals].[Attribute 2].&[N] *
    [Enrolment Planning Actuals].[Attribute 3].&[N]
  )
SELECT
   {
     [Measures].[Count],
     [Measures].[Revenue]
   } on 0,
   {  
     [Enrolment Planning Actuals].[Attribute 1].[YourCalculatedMember], 
     [Enrolment Planning Actuals].[Attribute 1].&[Y]
   } on 1
FROM [YourCube];

谢谢,这正是我想要实现的。谢谢,这正是我想要实现的。谢谢,这正是我想要实现的。谢谢,这正是我想要实现的。也谢谢你的投入,这对我来说是一个新的视角,我可以在其他情况下融入。同样感谢你的投入,这对我来说是一个新视角,我可以在其他情况下融入。同样感谢你的投入,这对我来说是一个新视角,我可以在其他情况下融入。同样感谢你的投入,这对我来说是一个新的视角,我可以将其融入到其他情况中。