Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

%NOT

特定のレベルの単一のメンバを除外できます。この関数は、インターシステムズによる MDX への拡張機能です。

返りタイプ

この関数は、メンバを返します。

構文および詳細

member_expression.%NOT

以下は、この指定の説明です。

  • member_expression は、メンバ ID です (一般のメンバ式は使用できません)。

この関数を使用すると、指定したメンバを除外できます。

多くの場合は、WHERE 節によって単一のメンバを除外する必要があります。例えば、まず以下のクエリを考えてみます。EXCEPT を使用しています。

SELECT aged.[age bucket].MEMBERS ON 1 FROM patients WHERE EXCEPT(aged.[age group].MEMBERS,aged.[age group].[0 to 29])
 
1 0 to 9                                  *
2 10 to 19                                *
3 20 to 29                                *
4 30 to 39                              166
5 40 to 49                              139
6 50 to 59                              106
7 60 to 69                               86
8 70 to 79                               62
9 80+                                    41

%NOT 関数を使用して、前のクエリを以下のように書き換えることができます。

SELECT aged.[age bucket].MEMBERS ON 1 FROM patients WHERE aged.[age group].[0 to 29].%NOT
 
 1 0 to 9                                  *
2 10 to 19                                *
3 20 to 29                                *
4 30 to 39                              166
5 40 to 49                              139
6 50 to 59                              106
7 60 to 69                               86
8 70 to 79                               62
9 80+                                    41

この関数を列軸または行軸に使用すると、この関数がメンバを返すことを確認できます。

SELECT aged.[age group].[0 to 29].%NOT ON 1 FROM patients
 
Not 0 to 29                             600

このように、メンバの名前として、NOT の後に除外するメンバの名前を指定します。

%NOT 関数には、いくつかの利点があります。

  • DeepSee は、そのレベルのすべてのメンバを実体化する必要がなくなります。

  • 効率を上げるために、処理の初期部分で否定が行われます。

  • %NOT は、単純なタプル式を形成するために、他のフィルタと (内部的に) 結合できる単一のメンバを返します。

関連項目

FeedbackOpens in a new tab