有没有办法指定每个单元格应该使用MDX返回?

时间:2009-07-06 09:03:20

标签: ssas mdx

我正在使用表格的查询:

Select {
    ([Measures].[M1], [Time].[2000]),
    ([Measures].[M2], [Time].[2000]),
    ([Measures].[M1], [Time].[2001]),
    ([Measures].[M2], [Time].[2001])
} on 0
From [Cube]
Where
    ([Some].[OtherStuff])

使用Analysis Services 2008.即使我没有指定NON EMPTY或类似的东西,我仍然只返回三个单元格(其中一个是null)。

如何确保所有细胞都被带回 - 即使是空细胞?

其他想法: 上面的查询实际上并不是我正在运行的那个(令人惊讶的是:))。真实的一个具有来自同一维度的几个层次结构,这些层次结构被指定为select的一部分,并且也是where子句的一部分。我想知道这是否与此有关,但我想不出究竟是什么。

其他额外的想法:* 这似乎是一个名为Auto-Exists的AS2005 / 8功能。请查看this MSDN article上的相关部分。

2 个答案:

答案 0 :(得分:1)

你正在拉回不同的尺寸,这种尺寸不会太好。试试这个:

with 
member [Time].[Calendar].[CY2000] as 
    ([Time].[Calendar].[2000], [Time].[Fiscal].[All Time])

member [Time].[Calendar].[FY2001] as
    ([Time].[Calendar].[All Time], [Time].[Fiscal].[2001])

select
    {[Time].[Calendar].[CY2000], [Time].[Calendar].[FY2001]}*
    {[Measures].[M1], [Measures].[M2]}
on columns
from [Cube]
where
    {[Some].[OtherOtherStuff]}

答案 1 :(得分:1)

不是答案,但这应该有助于缩小问题范围,在AdventureWorks中复制问题的查询

SELECT

{ ( [Date].[Calendar].[Date].&[1], [Date].[Fiscal].[Date].&[1129] ) } on 0

FROM [Adventure Works]

我希望这会带回指定的元组和Null,但是不会检索任何元组。

我认为这是因为元组位于同一维度的两个层次结构中,没有共性。