MDX で FILTER 関数がどのように機能するかを理解するのに苦労しています。
これは、すべての暦年のすべての販売地域の国について、空でないすべての Internet Order Count 値を取得するクエリです。
SELECT
NON EMPTY
{
Filter
(
{[Date].[Calendar].[Calendar Year].MEMBERS}
,
[Measures].[Internet Order Count] > 0
)
} ON COLUMNS
,[Sales Territory].[Sales Territory].[Country].MEMBERS
ON ROWS
FROM [Adventure Works]
WHERE
[Measures].[Internet Order Count];
これにより、0 でフィルタリングしているため、すべての注文が得られ、結果は以下のようになります。
CY 2010,CY 2011,CY 2012,CY 2013,CY 2014
France, 1 ,140 ,359 ,"1,917",67
Germany, ,175 ,339 ,"1,909",61
United Kingdom ,1 ,175 ,405 ,"2,377",73
Canada, 1 ,170 ,169 ,"2,856",179
United States, 5 ,770 ,867 ,"7,590",335
Australia, 6 ,786 ,"1,130","4,640",156
現在、画像のアップロードに制限があるため、csv 形式で結果を入力しています。私は MDX を初めて使用します。私の目標は、インターネット注文数が 180 を超えるこの結果セットをフィルター処理することです。
したがって、クエリをこれに変更しました-
SELECT
NON EMPTY
{
Filter
(
{[Date].[Calendar].[Calendar Year].MEMBERS}
,
[Measures].[Internet Order Count] > 180
)
} ON COLUMNS
,[Sales Territory].[Sales Territory].[Country].MEMBERS
ON ROWS
FROM [Adventure Works]
WHERE
[Measures].[Internet Order Count];
これにより、以下の出力が得られました-
CY 2011,CY 2012,CY 2013,CY 2014
France, 140 ,359 ,"1,917",67
Germany, 175 ,339 ,"1,909",61
United Kingdom ,175 ,405 ,"2,377",73
Canada, 170 ,169 ,"2,856",179
United States, 770 ,867 ,"7,590",335
Australia, 786 ,"1,130","4,640",156
基本的に CY 2010 のエントリは除外されますが、(France,CY 2011),(Germany, CY 2011),(UK, CY 2011), (Canada, CY 2011) などのエントリ/空白値は含まれないと予想されます。もちろん、CY 2014 に属する一部のエントリでも同様の結果が得られました。
AdventureWorksDW2014 キューブを使用しています。どうすればこれを行うことができますか?