私は本当にMDXの新機能ですが、過去2日間は答えを探していましたが失敗しました。だから私はあなたの助けと忍耐を大変感謝します。複数の計算フィルタをMDXに追加
複数のディメンションのフィルタをキューブに照会しようとしていますが、thisまたはthisのような多くの類似の質問が既に存在することがわかりました。
私が探している特定のコンテンツを指定する代わりに、特定の文字列で始まるすべてのレコードを取得するフィルタを設定しようとしています。この場合、フィルタにはleft
機能が必要です(つまり、フィルタを計算しますか?)が、コードにうまくブレンドできません。
私の失敗コードが
Select Non Empty ([Measures].[Sales]) ON 0
FROM [Cube_Name]
WHERE
(
FILTER
(
[Customer].[CustomerID].Members, Left([Customer].[CustomerID].CurrentMember.Name,4)="ABCD"),
[Product].[ProductID].Members, Left([Product].[ProductID].CurrentMember.Name,3)="EFG")
)
)
(私の裁判は、最後の答えhereに基づいています。)(2つのフィルタはAND
関係にする必要があります)私もいくつか存在することを読ん
このようなものですCROSSJOIN
WITH
AGGREGATE
またはサブSELECT
のような回避策がありますが、1)内部に条件を組み込む方法はありません。 2)パフォーマンス(私はCROSSJOIN
が遅くなることを聞いた)。
ここで言及する必要があるかどうかはわかりませんが、実際にはADOMB.Cellset
オブジェクトを使用してExcel VBAからMDXを実装しています。 Cellset.Items(0)
の下に実装したクエリの総計のみを表示します(これ以上のアイテムはありません)。
ありがとうございました!次の2つのフィルターに2セットを分割する必要が
はあなたにDanyloをありがとう!あなたのコードは完璧に動作します!フィルタにOR句を組み込む方法についてもう一つ教えていただけますか? Iは 'フィルタ( [製品]。[商品コード] [商品コード] .Members、 左( [製品]。[商品コード] .CurrentMember.Name、 3)に第二のフィルタを変更しようとしました= "EFG" OR 左( [製品]。[商品コード] .CurrentMember.Name、 3)= "HIJ" ) ' が、それは動作しません。ありがとうございました! – Aster37a
申し訳ありませんOR接続が動作しているようです。それはエラーメッセージの結果となる誤植の1つに過ぎません。タイムリーで正確な回答をいただき、ありがとうございます。 – Aster37a
お忘れなく、お答えします。 –