各月の棒グラフといくつかのメジャーを含む棒グラフを作成したいと考えています。
しかし、月の一部と完全に重ならない可能性のある日の範囲でフィルタリングしたい.
その場合、それらの月の集計カウントを、月全体の集計ではなく、私の日付範囲に該当する日の集計のみにしたいと考えています。
それは MDX で可能ですか? また、可能である場合、リクエストはどのように表示されますか?
サブセレクトを使用できます。詳細については、このページと次のページを参照してください。
軸句でメンバーが指定されている場合、そのメンバーとその先祖および子孫は、副選択のサブ キューブ スペースに含まれます。軸またはスライサー句で言及されていないすべての兄弟メンバー、およびそれらの子孫は、サブスペースからフィルター処理されます。このようにして、外部選択のスペースは、前述のように、その先祖と子孫を使用して、軸句またはスライサー句の既存のメンバーに制限されています。
以下に例を示します。
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]
)
結果には、 の 1 つの行Autralia
と の別の 1 つの行が含まれますUnited States
。副選択を使用して、値を状態に制限しUnited Stated
ましたWashington
。
元の次元の仮想次元を使用して、2 回目の次元を作成します。WHERE で 1 つのディメンションを使用し、SELECT で別のディメンションを使用します。
これは、四半期と期間の「ビジネス時間」が必要な人もいれば、月を好む人もいる場合によく発生します。または、4 月から 4 月までの会計年度がある場合。
モンドリアンでそれを行うことがわかった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