私はSSAS CubeとDatazen(ダッシュボードの作成者)を使用しています。複数の値とnull値を持つパラメータを持つMDXクエリ
AgeClassCode: 'AGE01'、 'AGE02'、 'AGE03'、...
StatutCode:「私は3つのパラメータで(valueCode 'AZE' の)データビューをしましたA」、 'B'、 'C'、 'D'、...
NiveauCode: 'X'、 'Y'、 'W'、...このクエリで
、場合私は複数の値を使用するか、それぞれの値を1つだけ使用します。 しかし、私は、クエリは、パラメータの値がnullの場合、パラメータのすべての値を返すことを望みます。私は、のisEmpty(STRTOSET(@paramを))のisEmpty(@param)をテストしてみた...しかし、それは、このエラーを返します:
An mdx expression was expected. An empty expression was specified.
このクエリは、1つまたは複数の値のために動作します:
SELECT
NON EMPTY
{
[Measures].[Value], [Measures].[PreviousValueYear], [Measures].[PreviousValueReportMonth]
} ON COLUMNS,
NON EMPTY
{
NONEMPTY
(
[EntiteFederal].[ServiceCode].[ServiceCode].ALLMEMBERS *
[EntiteFederal].[EntiteCode].[EntiteCode].ALLMEMBERS *
[ReportMonth].[ReportMonth].[ReportMonth].ALLMEMBERS *
[T].[Year].[Year].ALLMEMBERS
)
} DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM
(
SELECT ({ [ValueType].[ValueCode].&[AZE] }) ON COLUMNS
FROM (
SELECT (STRTOSET('{{ @AgeClassCode }}')) ON COLUMNS
FROM (
SELECT (STRTOSET('{{ @NiveauCode }}')) ON COLUMNS
FROM
(
SELECT ((STRTOSET('{{ @StatutCode }}')) ON COLUMNS
FROM [MyCube]
)
)
)
)
WHERE
(
IIF(STRTOSET('{{ @StatutCode }}').Count = 1, STRTOSET('{{ @StatutCode }}'), [Statut].[StatutCode].currentmember),
IIF(STRTOSET('{{ @NiveauCode }}').Count = 1, STRTOSET('{{ @NiveauCode }}'), [Niveau].[NiveauCode].currentmember),
IIF(STRTOSET('{{ @AgeClassCode }}').Count = 1, STRTOSET('{{ @AgeClassCode }}'), [AgeClass].[AgeClassCode].currentmember),
[ValueType].[ValueCode].&[AZE]
)
何を変更する必要がありますか?
EDIT:
(strtosetをテストする)
有効な表す文字列を指定する必要がありstrToMember
strToSet
を使用したりすると、良い解決策は
isError()
ソフトウェアを変更する方法はありません。私の次元に基づいた選択リストナビゲータです。値が選択されていない場合、エラーが表示されます。 また、パラメータAgeClassCodeを次のように変更しようとしました: 'IIF(ISEMPTY( '{{{@AgeClassCode}}))、[AgeClass]。[AgeClassCode] .Members、STRTOSET(' {{@AgeClassCode}} ')) ' 私はwhere句を削除しましたが、それでも同じエラーです。 – Huojian
申し訳ありませんが、私はdatazenのインターフェースで遊んでいません。有効なMDX文字列をstrToSetまたはstrToMemberに渡す必要があります。何もしたくない場合は、 '{}}を入力するか、すべてのメンバーに' [AgeClassCode]。[AgeClassCode]。[AgeClassCode ].members'のようなものを追加してみてください。 NULLをstrToSet、strToMember、ISEMPTYに渡すと、すべて失敗します。 ISEMPTYには、引数として有効なmdx式が必要です。 – whytheq