Ssas MDX:如何使用硬编码值通过查询创建2x2数组

Ssas MDX:如何使用硬编码值通过查询创建2x2数组,ssas,mdx,olap,Ssas,Mdx,Olap,在MDX中,我想创建一个select,它返回一个2x2数组,用硬编码值填充。 以下是一个尝试: WITH MEMBER a AS 1 MEMBER b AS 2 SET un AS { a , b } SELECT { un} ON 0, [Dim misc].[Gender].[(All)] ON 1 FROM [my cube] 它返回: 但我希望它返回另一行,其值不是1,2。您已经解决了一半的问题。但是,不需要定义集合。 您需要执行以下操作 使用defaultmember 用例

在MDX中,我想创建一个select,它返回一个2x2数组,用硬编码值填充。 以下是一个尝试:

WITH 
MEMBER a AS 1
MEMBER b AS 2
SET un AS { a , b }


SELECT { un} ON 0,
[Dim misc].[Gender].[(All)] ON 1
FROM [my cube]
它返回:


但我希望它返回另一行,其值不是1,2。

您已经解决了一半的问题。但是,不需要定义集合。 您需要执行以下操作

  • 使用defaultmember
  • 用例
  • 为所使用的标注定义虚拟成员
  • 只定义成员而不是Set
  • 看看下面这个基于冒险作品的例子

    with 
    member Column1Row1 as 1
    member Column2Row1 as 2
    member Column1Row2 as 3
    member Column2Row2 as 4
    
    member Column1 as case when [Product].[Product].currentmember  is [Product].[Product].defaultmember then Column1Row1 else Column1Row2  end 
    member Column2 as case when [Product].[Product].currentmember  is [Product].[Product].defaultmember then Column2Row1 else Column2Row2  end
    
    member [Product].[Product].[Row2]
    as [Product].[Product].defaultmember
    
    select 
    {Column1,Column2} on 0,
    {
    [Product].[Product].defaultmember,
    [Product].[Product].[Row2]}
    on 1 
    from 
    [Adventure Works]
    
    结果