• 検索結果がありません。

クエリフィルタを使用したデータのフィルタ処理

4 クエリの作成

4.9 クエリ内のデータのフィルタ処理

4.9.1 クエリフィルタを使用したデータのフィルタ処理

4.9.1.2 クエリフィルタとレポートフィルタの比較

フィルタは2つのレベルで適用できます。

● クエリフィルタ - クエリに定義するフィルタで、データソースから取得してドキュメントに返すデータを制限します。

● レポートフィルタ - このフィルタはドキュメント内のレポート、テーブル、チャート、セクションに表示する値を制限しますが、

データソースから取得するデータを変更するのではなく、単にレポートレベルで値を隠すだけです。

4.9.1.3 クエリフィルタの構造

クエリフィルタは、フィルタ適用オブジェクト、演算子、オペランドという構造を持ちます。

"国" InList (アメリカ;フランス) というフィルタでは、"国" ディメンションがフィルタ適用オブジェクト、InList が演算 子、そして値の一覧 (アメリカ;フランス) がオペランドとなります。このフィルタにより、アメリカとフランス以外のすべての "国"

の値がクエリ結果から削除されます。

表8: クエリフィルタのコンポーネント

コンポーネント 説明

フィルタ適用オブジェクト フィルタ適用オブジェクトは、その値にフィルタが適用されるオブジェクトです。ディメンション、

属性、メジャー、階層、およびレベルをフィルタ適用オブジェクトとして使用できます。

BEx クエリの場合を除き、フィルタ適用オブジェクトが結果オブジェクトとしてクエリに含まれ ている必要はありません。たとえば、"顧客" オブジェクトと "売上げ" オブジェクトを含むクエリ で、"地域" オブジェクトをフィルタ処理することができます。フィルタが "地域" Equal To

"南西部" である場合、クエリは、南西部地域の顧客のみを返します。

演算子 演算子は、フィルタ適用オブジェクトをオペランドと比較するために使用されます。たとえば、

Equal To 演算子は、フィルタ適用オブジェクトの値のうち、オペランドと正確に一致する値の

みを保持します。

オペランド オペランドはフィルタ適用オブジェクトをフィルタ処理するための値を提供します。次の表にオ ペランドの種類を示します。

表9: オペランドの種類

オペランドの種類 説明

定数 定数オペランドは、値を直接入力するために使用します。たとえば、定数を使用して、"国"

Equal To フランスというフィルタに「フランス」と入力することができます。

フィルタ適用オブジェクトが階層の場合は、その階層がパターンと一致またはパターンと 異なる演算子と一緒に使用されている場合を除き、オペランドを定数にすることはできませ ん。

値の一覧 値の一覧オペランドは、フィルタ適用オブジェクトに関連付けられている一覧から値を選択す るために使用されます。たとえば、フィルタ適用オブジェクトが "都市" である場合、値の一覧 を使用してこのオブジェクトに関連付けられている 1 つ以上の都市を選択することができま す。

オペランドの種類 説明

プロンプト プロンプトは、クエリを最新表示したときに回答される動的フィルタです。

ユニバースオブジェクト ユニバースからオブジェクトを選択し、その値でフィルタ適用オブジェクトをフィルタ処理する ことができます。

注記

一部の OLAP データソースまたは階層のフィルタ適用オブジェクトでは、ユニバースオブ

ジェクトをオペランドとして選択できません。

他のクエリからの結果 フィルタ適用オブジェクトを、別のクエリから返された値と比較することができます。

関連リンク

BEx クエリの定義 [ページ 68]

4.9.1.3.1 クエリフィルタおよびプロンプト演算子

演算子の一覧

Equal To 演算子

ある値と等しいデータを取得するには、Equal To 演算子を使用します。

たとえば、US のデータのみを返すには、“国 Equal To US”フィルタを作成します。

Not Equal To 演算子

ある値と等しくないデータを取得するには、Not Equal To 演算子を使用します。

たとえば、US 以外のすべての国のデータを返すには、“国 Not Equal To US”フィルタを作成します。

注記

この演算子は OLAP unx ユニバースの親子階層や BEx クエリには使用できません。

Greater Than 演算子

ある値よりも大きいデータを取得するには、Greater Than 演算子を使用します。

たとえば、60 を越える年齢の顧客のデータを取得するには、“[顧客の年齢] Greater than 60”フィルタを作成します。

注記

この演算子は OLAP unx ユニバースの親子階層や BEx クエリには使用できません。

Greater Than Or Equal To 演算子

ある値以上のデータを取得するには、Greater Than or Equal To 演算子を使用します。

たとえば、売上げが 150 万ドル以上のデータを取得するには、“[売上げ] Greater than or equal to 1500000”フィルタを作 成します。

注記

この演算子は OLAP unx ユニバースの親子階層や BEx 階層には使用できません。

Less Than 演算子

Less Than 演算子は、ある値よりも小さいデータを取得する場合に使用します。

たとえば、試験結果が 40 点より低いデータを取得するには、“[試験結果] Less Than 40”フィルタを作成します。

注記

この演算子は、OLAP unx ユニバース、およびフィルタ内の階層 (BEx クエリの階層) では使用でません。

Less Than Or Equal To 演算子

ある値以下のデータを取得するには、Less Than Or Equal To 演算子を使用します。

たとえば、年齢が 30 歳以下の顧客のデータを取得するには、“[年齢] Less Than Or Equal To 30”フィルタを使用します。

注記

この演算子はフィルタの OLAP unx ユニバースおよび階層、または BEx クエリの階層には使用できません。

Between 演算子

2 つの境界値の間のデータ (2 つの境界値を含む) を取得するには、Between 演算子を使用します。1 つ目に宣言する値は 2 つ目の値より下の値である必要があります。

たとえば、第 25 週から第 36 週までの週 (第 25 週と第 36 週を含む) のデータを取得するには、"[週] Between 25 and 36" フィルタを作成します。

注記

この演算子はフィルタの OLAP unx ユニバースおよび BEx 階層には使用できません。

Not Between 演算子

2 つの値の範囲に含まれないデータを取得するには、Not Between 演算子を使用します。

たとえば、第 25 週から第 36 週までの週を除くすべての週 (第 25 週と第 36週を含まない) のデータを取得するには、“[週] Not between 25 and 36”フィルタを作成します。

注記

この演算子はフィルタの OLAP unx ユニバースおよび BEx 階層には使用できません。

In List 演算子

In List 演算子は、値の一覧の値に対応するデータを取得する場合に使用されます。

たとえば、US、UK、および Japan のデータのみを取得する場合、[国] In List フィルタを作成します。このフィルタでは、[値を 入力] フィールドに値を入力するときに「US;UK;Japan」と入力する必要があります。

クエリフィルタで階層型の値の一覧とともに使用する場合は、それが階層型の値の一覧か階層オブジェクトのいずれに関連 付けられているディメンションの値であっても、In List 演算子は階層の任意のレベルから複数のメンバーを選択できます。た とえば、In List 演算子を使用した "地理" 階層のプロンプトでは、プロンプトの "市" レベルで "パリ" を、"国" レベルで "カナ ダ" を選択することができます。

レポートフィルタで使用する場合、In List は値のフラットリストを作成します。

Not In List 演算子

複数の値に対応しないデータを取得するには、Not In List 演算子を使用します。

たとえば、US、UK、および Japan のデータを取得しない場合、[国] Not In フィルタを作成し、[値の入力] フィールドの値が入 力可能なとき、「US;UK;Japan」と入力する必要があります。

階層型の値の一覧とともに使用する場合は、それが階層型の値の一覧か階層オブジェクトかレベルオブジェクトのいずれに 関連付けられているディメンションの値であっても、In List 演算子は階層の任意のレベルから複数のメンバーを選択できま す。たとえば、Not In List 演算子を使用する "地理" 階層のプロンプトでは、プロンプトの都市レベルで "パリ、国レベルで "カ

ナダ" を選択することができます。

注記

この演算子は、レベルベースの階層など、特定の種類の階層でのみ使用できます。

Matches Pattern 演算子

Matches Pattern 演算子を使用して、特定の文字列または文字列の一部を含むデータを取得します。

たとえば、1972 年生まれの顧客を取得するには、フィルタ [DOB] Matches Pattern "72" を作成します。

注記

この演算子は BEx 階層には使用できません。

Different From Pattern 演算子

Different From Pattern 演算子を使用して、特定の文字列を含まないデータを取得します。

たとえば、1972 年生まれではない顧客を取得するには、フィルタ [DOB] Different From Pattern '72' を作成します。

注記

この演算子は BEx または OLAP unx ユニバースの親ベースの階層には使用できません。

Both 演算子

Both 演算子を使用して、2 つの値に対応するデータを取得します。

たとえば、固定電話と携帯電話を所持している顧客を取得するには、フィルタ [Account Type] Both '固定' And '携帯' を作 成します。

注記

この演算子は、階層オブジェクトに基づくフィルタについてはサポートされておらず、また、OLAP データソースに基づくユニ バース内でもサポートされません。

Except 演算子

Except 演算子を使用して、1 つの値に対応し、もうひとつの値を含まないデータを取得します。

たとえば、固定電話を所持し、携帯電話を所持していない顧客を取得するには、フィルタ [Account Type] '固定' Except '携 帯' を作成します。

Except 演算子は、Different From Pattern 演算子や Not In List 演算子よりも制限が厳格です。たとえば、顧客

を返すレポートで、フィルタが [Lines] Different From 'アクセサリ' の場合、'アクセサリ' 行に販売済みアイテムが 含まれている販売レコードはすべて除外されます。同じ顧客が購入済みアクセサリとアクセサリ以外のアイテムを所持してい る場合、この顧客はレポートに表示されますが、支払い合計にはアクセサリ以外の販売額のみが含まれます。

フィルタが [Lines] Except 'アクセサリ' の場合、レポートにはアクセサリを購入していない顧客だけが含まれます。

注記

この演算子は OLAP データソースに基づくユニバース内ではサポートされません。

関連リンク

Different From Pattern 演算子 [ページ 99]

Not In List 演算子 [ページ 99]

フィルタ演算子の制約[フィルタエンザンシノセイヤク]

以下のテーブルに、フィルタ適用オブジェクトおよびクエリのタイプごとの、プロンプト演算子およびフィルタ演算子の制約を一 覧表示します。

オブジェクト 使用できるフィルタ

レベルベースの階層 等しい、等しくない、リスト内、リスト外、パターンと一 致、パターンと異なる

親子階層 等しい、リスト内、パターンと一致

BEx クエリ内の階層 等しい、リスト内

4.9.1.4 クエリフィルタの種類

次の種類のクエリフィルタを作成できます。

● 定義済みフィルタ - 管理者が作成したフィルタ

● カスタムフィルタ - ユーザがクエリに定義するフィルタ

● クエリフィルタ ‐ 単純なフィルタに使用する簡易形式のカスタムフィルタ

● プロンプト - ドキュメントにクエリを実行するたびに異なるフィルタ値を選択できるよう、質問や値の一覧を表示する動的フ ィルタ

同じクエリに、異なる種類のフィルタを組み合わせて適用することができます。