170-60 | テーブル
krewDataでは、テーブル作成時にレコードが存在しない場合、テーブルレコードが作成されません。
この場合にテーブルに空レコードを追加する方法をこちらのドリルで紹介しました。
しかし、この方法では複数テーブルに対しレコードを追加する設定では正しく動作しません。
※以下の様に、他のテーブルレコード数分、空レコードが出力されてしまいます。
複数テーブル出力する際に、空レコードを1レコードのみ追加する方法を紹介します。
1.メインレコードに設定するフィールドを抽出し、重複を削除する
- 入力アプリコマンドで「入出荷アプリ」を選択し、以下のフィールドを指定する
対象フィールド:「商品名」「入出荷」「日付」「利用部署」「数」 - フィールド選択コマンドを追加し、「商品名」フィールドを選択する
- 重複の削除コマンドを追加し、「商品名」が重複するレコードを削除する
2.入荷テーブルに出力するレコードを抽出する
- フィルタコマンドを追加し、入出荷フィールドが「入荷」のレコードで絞り込む
- アプリ結合コマンドで重複削除したメインレコードと、入荷テーブルに出力するレコードを結合する
・結合方法:左外部結合
・結合キー:商品名(重複の削除) = 商品名(入荷レコード抽出) - 定数の追加コマンドにて、結合したレコードに対し「ダミーフィールド」を追加する
- フィールド選択コマンドにて不要なテーブルを除外し、入荷テーブルに設定するフィールド名を変更する
・選択フィールド:商品名、入荷_日付(日付)、入荷_利用部署(利用部署)、入荷_数(数)、入荷_ダミー(ダミー)
3.出荷テーブルに出力するレコードを抽出する
- フィルタコマンドを追加し、入出荷フィールドが「出荷」のレコードで絞り込む
- アプリ結合コマンドで重複削除したメインレコードと、出荷テーブルに出力するレコードを結合する
・結合方法:左外部結合
・結合キー:商品名(重複の削除) = 商品名(出荷レコード抽出) - 定数の追加コマンドにて、結合したレコードに対し「ダミーフィールド」を追加する
- フィールド選択コマンドにて不要なテーブルを除外し、出荷テーブルに設定するフィールド名を変更する
・選択フィールド:商品名、入荷_日付(日付)、出荷_利用部署(利用部署)、出荷_数(数)、出荷_ダミー(ダミー)
4.テーブル作成を行い、レコードを出力する
- レコード結合コマンドを追加し、入荷テーブル/出荷テーブルに追加するレコードを結合します
・結合方法:すべてのフィールドを含める - テーブル作成コマンドで、「入荷テーブル」「出荷テーブル」を作成する
・レコードに保持するフィールド:商品名
・新しいテーブル名「入荷テーブル」
⇒テーブルに保持するフィールド:「入荷_日付」「入荷_利用部署」「入荷_数」「入荷_ダミー」
・新しいテーブル名「出荷テーブル」
⇒テーブルに保持するフィールド:「出荷_日付」「出荷_利用部署」「出荷_数」「出荷_ダミー」 - 出力アプリコマンドで「入出荷一覧管理」アプリを指定し、以下の設定を行う。
・更新キー:商品名
・入荷テーブルの出力方法「再作成」
・出荷テーブルの出力方法「再作成」
プレビューで出力結果を確認する
各テーブルに出力レコードがない場合、空レコードが1レコードのみ表示されることを確認
・入荷テーブル:商品Cのレコードで確認
・出荷テーブル:商品Bのレコードで確認
サンプルファイルのダウンロードはこちら
https://download.krew.mescius.jp/study/krewdata-drill/basic/dt170-60add-blanktable.zip