MDXの同じディメンションをグループ化してフィルタリングする方法
質問
毎月のバーを備えたバーチャートを作成して、ある程度の測定を行いたいです。
しかし、私はまた、月のいくつかの月を完全に重ならないかもしれない日の範囲を絞り込むことを望みます。
それが起こるとき、私は私の日付範囲に該当する日に該当する日数のみ集約を集計してください。
は、MDXで可能な限り、その要求はどのように見えるかのようなものですか?
解決
元のディメンションの仮想次元を使用して、2回目のディメンションを作成します。SELECT内のWHEREと別のディメンションを使用してください。
これは、四半期と期間の「事業時期」を望んでいれば、とにかく、他の月が月を好みます。または、4月 - 4月に実行する会計年度がある場合
他のヒント
軸句にメンバーが指定されている場合、そのメンバー その昇格と子孫はサブキューブスペースに含まれています 副選択上記の兄弟姉妹、軸または Slicer句、およびその子孫は部分空間からフィルタリングされます。 このようにして、外部選択のスペースはに制限されています AXIS句またはSLICER句の既存のメンバー。 前述の昇格と子孫
これは例です:
.SELECT { [Customer].[Customer Geography].[Country].&[Australia] , [Customer].[Customer Geography].[Country].&[United States] } ON 1 , {[Measures].[Internet Sales Amount], [Measures].[Reseller Sales Amount]} ON 0 FROM ( SELECT {[Customer].[Customer Geography].[Country].&[Australia] , [Customer].[State-Province].&[WA]&[US]} ON 0 FROM [Adventure Works] )
結果には、
Autralia
用の1行が含まれ、United States
には別のものがあります。副選択を使用すると、United Stated
の値をWashington
状態に制限しました。
私がMondrianでそれをすることを見つけた1つの方法は以下のように
WITH MEMBER [Measures].[Units Shipped2] AS
SUM
(
{
exists([Store].[Store Country].currentmember.children,{[Store].[USA].[WA],[Store].[USA].[OR]})
},[Measures].[Units Shipped]
)
MEMBER [Measures].[Warehouse Sales2] AS
SUM
(
{
exists([Store].[Store Country].currentmember.children,{[Store].[USA].[WA],[Store].[USA].[OR]})
},[Measures].[Warehouse Sales]
)
SELECT
{[Measures].[Units Shipped2],[Measures].[Warehouse Sales2]} ON 0,
NON EMPTY [Store].[Store Country].Members on 1
FROM [Warehouse]
.
以下のようにSQLでフィルタリングが行われ、優れた性能を与えるか、ローカルで実行されるかどうかわかりません。
select Country, sum(unit_shipped)
where state in ('WA','OR' )
group by Country
. 所属していません StackOverflow