0

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;
4

0 に答える 0