0

我正在使用以下形式的查询:

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 或类似内容,我仍然只能返回三个单元格(其中一个为空)。

我如何确保所有单元格都被带回 - 甚至是空单元格?

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

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

4

2 回答 2

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]}
于 2009-07-07T18:21:11.920 回答
1

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

SELECT

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

FROM [Adventure Works]

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

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

于 2009-07-08T09:21:03.513 回答