price
小数フィールドを持つテーブルを持つ SSAS 表形式キューブがあります。そのキューブは、SSRS レポートを作成するためのデータ ソースとして使用されます。それらのレポートの 1 つで、価格がパラメーターとして指定された値よりも高いという事実についてのみ、いくつかの計算を行う必要があります。そのパラメーターは、クエリ デザイナーでドラッグ アンド ドロップするだけで作成されました。ただし、正確な価格でレコードを検索する必要はありません。価格の上限を設定するだけで済みます。
そこで、クエリ デザイナに組み込まれた MDX クエリを手動で変更するために、MDX 関連の情報を探し始めました。Filter()
関数を使用して、パラメーター値をその論理式に渡す必要があるようです。メジャーが使用されている論理式を持つネットには多くの例があります。しかし、論理式でディメンション メンバーを使用しようとするMembervalues
と(Values
関数を試してみました)、さまざまなエラーが発生しました。この問題は、T-SQL を使用する場合のように、はるかにトリッキーであることを理解しています。
しかし、それを解決する方法は?ディメンション テーブルを数値で除外することはできますか?
スクリプトは次のとおりです。
SELECT
NON EMPTY
{
[Measures].[# состоявшихся аптечных визитов (с препаратами)]
} ON COLUMNS
FROM
(
SELECT
StrToSet
(@[ПродажиаптекЦена]
,CONSTRAINED
) ON COLUMNS
FROM [Аптечные визиты]
)
WHERE
IIF
(
StrToSet(@[ПродажиаптекЦена],CONSTRAINED).Count = 1
,StrToSet
(@[ПродажиаптекЦена]
,CONSTRAINED
)
,[Продажи аптек].[Цена].CurrentMember
)
CELL PROPERTIES
Value
,BACK_COLOR
,FORE_COLOR
,FORMATTED_VALUE
,FORMAT_STRING
,FONT_NAME
,FONT_SIZE
,FONT_FLAGS;