Warm tip: This article is reproduced from serverfault.com, please click

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

(ssas - MDX : how to create a 2x2 array with a query, using hard coded values)

发布于 2020-12-20 07:19:43

在MDX中,我想创建一个选择,该选择返回一个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。

Questioner
lolveley
Viewed
0
MoazRub 2020-12-21 19:29:43

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

  1. 使用defaultmember,
  2. 用例
  3. 为你使用的尺寸定义一个虚拟成员。
  4. 代替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]

结果

在此处输入图片说明