4

MDXは初めてです。ここで、2つの異なる次元からの2つの結果を組み合わせたいと思います。私は次のようなコードを使用しています:

With 
 MEMBER [Measures].[Student Head Count].[Program1] AS
([Program1].[Program1].&[1])
MEMBER [Measures].[Student Head Count].[Program2] AS
([Program2].[Program2].&[1]) 

SELECT
NON EMPTY
{
[Measures].[Student Head Count].[Program1] ,
[Measures].[Student Head Count].[Program2]
}
ON COLUMNS

FROM [Current Student Overview]

エラーは次のことを示しています。

The Program1 calculated member cannot be created because its parent is at the lowest level in the Measures hierarchy.

「StudentHeadCount」が最低レベルであることは知っていますが、構文を変更する方法がわかりません。「Student Head Count」を「Test」に置き換えると、どちらも機能しません。また、「ユニオン」は試したように動作しません。誰かが変更されたまたは新しいMDXで私を助けることができますか?

次のスクリプトを使用してCrossjoinを試してみました。

SELECT
 NON EMPTY
{

 [Measures].[Student Head Count]
}
ON COLUMNS,
NON EMPTY
{
NONEMPTYCROSSJOIN({[Program1].[Program1].&[1]},{[Program2].[Program2] }),
NONEMPTYCROSSJOIN({[Program1].[Program1] },{[Program2].[Program2].&[1]})  
}
on 1


FROM [Current Student Overview]

結果は次のとおりです。

ここに画像の説明を入力してください

では、パフォーマンスポイントの「すべて」列を削除または非表示にするにはどうすればよいですか?

4

1 に答える 1

2

メジャーディメンションには1つのレベルしかありません。メジャー名はとである必要が[Measures].[Program21]あり[Measures].[Program2]ます。

次のようにクエリを書き直すこともできます。

SELECT
NON EMPTY
{
    ([Program1].[Program1].&[1], [Program2].[Program2].&[1])
}
ON COLUMNS
FROM [Current Student Overview]
WHERE ([Measures].[Student Head Count])

Mdxでは、異なる次元からの結果を結合することはできませんが、CrossJoin関数を使用して外積を行うことができます。

編集:セットにメンバーが1つしかない場合は、CrossJoinを使用する必要はありません。あなたがすることができます(member1, member2)

表示したくない場合はAll、次のようなクエリを使用できます。

WITH
 MEMBER [Measures].[Student Head Count Program1] AS
    ([Measures].[Student Head Count], [Program1].[Program1].&[1], [Program2].[Program2].[All])
MEMBER [Measures].[Student Head Count Program2] AS
    ([Measures].[Student Head Count], [Program1].[Program1].[All], [Program2].[Program2].&[1]) 
SELECT
NON EMPTY
{
    [Measures].[Student Head Count Program1] ,
    [Measures].[Student Head Count Program2]
}
ON COLUMNS
FROM [Current Student Overview]
于 2012-08-17T15:01:34.623 に答える