1)NULL値だけの行(列)を表示しない
SELECT句の軸の指定に「NON EMPTY」と指定することで、その軸のすべての項目がNULLとなるデータを除外できます。次のMDXを実行してみましょう。
SELECT { [TOKUISAKI].[TOKUIMEI].CHILDREN
} ON COLUMNS,
{ [SHOHIN].[SHOHINBUNRUIMEI].CHILDREN
} ON ROWS
FROM [Sales]
WHERE ([Measures].[URIKINGAKU])
以下のような実行結果が得られたとします。
この場合、「指定なし」という行のすべての列が(NULL)になっています。これは「指定なし」という商品分類の商品の売上が存在していないことを表しています。
通常、このような行はクエリー結果には不要です。この行を表示しないようにするためにはMDXを次のように修正します。
SELECT { [TOKUISAKI].[TOKUIMEI].CHILDREN
} ON COLUMNS
NON EMPTY{ [SHOHIN].[SHOHINBUNRUIMEI].CHILDREN
} ON ROWS,
FROM [Sales]
WHERE ([Measures].[URIKINGAKU])
実行結果は次のようになります。
このように、「すべての項目がNULLとなる行(または列)を、クエリー結果から除外する」場合は、その軸のセットの記述前に「NON EMPTY」を指定します。
2)データの並べ替え(ORDER)
次に、データの並べ替えを行います。データの並べ替えにはORDER関数を使用します。
構文:ORDER (セット,数値または文字式,並べ替えオプション)
第1パラメータのセットは並べ替えるセットを指定し、第2パラメータの数値式は並べ替えの根拠となる数値または文字式を指定します。第3パラメータには昇順(ASC)、降順(DESC)を指定します。
例として、「売上数量の多い順」に得意先を並べてみます。
SELECT { [Measures].[SURYO]
} ON COLUMNS,
{ ORDER([TOKUISAKI].[TOKUIMEI].CHILDREN,
[Measures].[SURYO],DESC)
} ON ROWS
FROM [Sales]
WHERE ([URIAGE DATE].[YEAR].[2009年])
実行結果は次のようになります。

このように、「2009年の売上数量の多い順」に得意先が並びました。


