
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
■はじめに
ここでは、ロード処理で取り込むデータを絞り込むために利用される、WhereとWhere Existsについてご紹介します。
■準備
サンプルデータのダウンロード
記事の添付ファイルからサンプルデータ(SalesData.zip)をダウンロードし、ダウンロードしたZIPファイルを任意の場所に解凍してください。
アプリの作成とデータの取り込み
新規のアプリを作成し、ダウンロードしたデータを取り込んでください。以下のようなデータモデルが作成されます。
ロードエディタを開いて「自動生成セクション」のタブを開き、「ロック解除」をクリックしてロックを解除します。
■条件指定によるデータの絞り込み – Where
では、まず条件を指定してソースデータから取り込むデータの絞り込みを行ってみたいと思います。ここでは、「商品マスタ」の中から「商品カテゴリ」が「ビデオカメラ」のレコードのみに絞り込みを行います。
商品マスタの取り込み部分のスクリプトに以下の赤字のステートメントを追加します。
[商品マスタ]:
LOAD
[商品コード],
[商品名],
[商品カテゴリ],
[取引先コード]
FROM [lib://売上データ/商品マスタ.xlsx]
(ooxml, embedded labels, table is 商品マスタ)
Where [商品カテゴリ] = 'ビデオカメラ';
上記の変更を行ってリロード処理を実行すると、以下の形で取り込まれるデータが絞り込まれます。
尚、Where句には以下の様な条件の指定を行うことも可能です。
- Where [商品コード] >= 3 AND [商品コード] <=5; //3以上、5以下の[商品コード]に絞り込み
- Where [商品名] Like ‘*テレビ*’; //「商品名」にテレビを含むレコードに絞り込み
■既に存在するデータのみの取り込み – Where Exists
次に、既に取込まれている「商品マスタ」に存在する「商品コード」に合致するデータに絞り込んで「売上明細」のデータを取り込みます。
[売上明細]:
LOAD
[伝票番号],
[都道府県コード],
[顧客コード],
[商品コード],
[数量],
[販売価格],
[販売原価]
FROM [lib://売上データ/売上明細.xlsx]
(ooxml, embedded labels, table is 売上明細)
Where Exists([商品コード]);
上記の処理を実行すると、既に取り込まれている「商品マスタ」に存在する「商品コード」(1~5)のみが取り込まれます。
尚、上記例では両方のテーブルに存在する項目名が共通の「商品コード」となっているため引数は一つとなりますが、異なる場合には以下の形でそれぞれのテーブルの項目名を指定します。この時、1つ目の引数は最初に取り込まれるテーブルの項目名で「’ (シングルクオート)」で括りますが、2つ目の引数に指定する後に取り込まれるテーブルの項目名はクオートで括りませんので注意が必要です。
- Where Exists(‘商品コード’, 商品ID); //最初のテーブルの項目名が「商品コード」、後に取り込まれるテーブルの項目名が「商品ID」の場合
また、逆に最初のテーブルに存在しない項目のみを「Where Not Exists」を使って後のテーブルから取り込むことも出来ます。
- Where Not Exists(‘商品コード’, 商品ID);
■まとめ
ロード処理で取り込むデータを絞り込むために利用される、WhereとWhere Existsについてご紹介しました。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.