私は次の2つの選択肢を持っていると思う:
1-あなたの事実に列を追加します(またはファクトテーブルに基づいてデータソースビューで表示)のように:
case when unit_Price>2000 then 1
else 0
end as Unit_Price_Uper_Or_Under_10
、これに基づいて架空の次元を追加列の値。 とのDataSourceViewで新次元(たとえばRange_Dimensionの名前付きクエリを追加します。 すべて が範囲
、あなたが他の次元と属性のように、このフィルタを使用カントtaht後として0を選択範囲 組合として1を選択し
SELECT [Store].[Stores].[Store].members ON COLUMNS,
[Unit Sales] ON ROWS
FROM [Warehouse and Sales]
WHERE [Test_Dimension].[Range].&[1]
問題はすべての範囲でWhen
条件を追加する必要があります。範囲が静的である場合にのみ、この解決策は良い解決策です。 とダイナミックレンジの場合は、範囲を策定する方が良いです(除外方法に基づいて)
2-我々は、主キーSale_id
とファクトテーブルを持っている場合、我々は、1列のみsale_Id
でファクトテーブルに基づい 次元を追加することができ、dimension Usage tab
に我々はこれを関連付けることができ、たとえば、ファクトテーブル に基づいてファクトテーブル近傍粒度次元を追加関係型Fact
と とnew dimension
とmeasure group
はその後、我々はのようなものを使用することができMDXに:私は "のいずれかの明確な解決策を見つけていないよう
filter([dim Sale].[Sale Id].[Sale Id].members,[Measures].[Unit Price]>2000)
(対策としての寸法およびクリックとして、我々は1000年よりも多くのクリックでdtを探したいdtは仮定)以下の好きな、それはすべての必要な電子ではなく、私は行くつもりです。あなたの例はストアのセットをフィルタリングしますが、私が探しているのは、ファクトレコードをフィルタリングする方法です。 あなたの例を使って、私は店舗あたりの平均販売単価を表示したいと思いますが、すべての店舗を表示したいと思いますが、平均で単位売上高> 2000を集計したくありません。 – Colin