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などを指定していませんが、まだ3つのセルしか返されていません(そのうちの1つはnullです)。

すべてのセルが戻されるようにするにはどうすればよいですか? null のセルも含めて?

追加の考え: 上記のクエリは、実際に実行しているものではありません (驚くべきことに:))。実際のものには、select の一部として、また where 句の一部として指定された同じディメンションからの階層がいくつかあります。それと何か関係があるのだろうかと思うのですが、正確には何なのかわかりません。

追加の追加の考え:* これは Auto-Exists と呼ばれる AS2005/8 機能のようです。この MSDN 記事の関連セクションをご覧ください。

4

2 に答える 2

1

答えではありませんが、これは問題を絞り込むのに役立つはずです。AdventureWorks で問題を再現するクエリです。

SELECT

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

FROM [Adventure Works]

これにより、指定されたタプルと Null が返されることを期待していますが、代わりにタプルは取得されません。

これは、タプルが同じ次元の 2 つの階層にあり、共通性がないためだと思います。

于 2009-07-08T09:21:03.513 に答える
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 に答える