QUERY | その2 |
QUERYは、データベースの情報を、非常に簡単に検索処理できるユーティリティーです。
プログラミングをしらなくても対話型で設定をすすめて本格的な報告書の作成ができます。
このページでは、簡単なサンプルを材料にQUERY(一部)を紹介します。
各種QUERY定義
本格的な一覧表やレポートの作成をするには、必要に応じて各種QUERYの定義を行います。
保存したQUERYの変更
一度定義して保存してあるQUERYを改定するには、QUERY処理の画面で、2の変更を選択します。
QUERY 処理 選択項目を入力して,実行キーを押してください。 オプション . . . . 2 1= 作成, 2= 変更, 3= コピー, 4= 削除 5= 表示, 6= 定義の印刷 8= バッチで実行, 9= 実行 QUERY 定義 . . . . TEST 名前,リストは F4キー ライブラリー . . QTEMP 名前, *LIBL, リストは F4キー F3= 終了 F4=プロンプト F5= 最新表示 F12= 取消し
オプションで各種の処理ができますが、変更するときは番号(2)を入力します。
下記画面から、必要に応じて各種QUERYの定義を行います。
それぞれの定義を終わると、この画面に戻ります。定義済みには’>’の印がついています。
QUERY 定義 QUERY. . . . . . : TEST オプション . . . : 変更 ライブラリー . : QTEMP CCSID. . . . . . : 65535 オプション を入力して実行キーを押すか, F21 を押してすべてを選択してください。 1= 選択 OPT QUERY 定義オプション > ファイル選択指定 結果のフィールドの定義 フィールドの選択および順序付け レコードの選択 分類フィールドの選択 照合順序の選択 報告書の欄の形式指定 計算機能の選択 制御レベルの定義 > 出力タイプおよび出力形式の選択 処理オプションの指定 F3= 終了 F5= 報告書 F13= レイアウト F18= ファイル F21= すべての選択
◆結果のフィールドの指定
単価*数量のように演算結果のフィールドを、定義するような場合に選択します。
この項に関しては、JOINファイルの使用のところで説明します。
◆フィールドの選択および順序付け
すべてのフィールドを表示/印刷する必要がなければ、この選択で指定します。
選択すると次の画面が表示されます。
フィールドの選択および順序付け 報告書に表示したい 500 以内のフィールド名に順序番号 (0-9999) を入力して, 実行キーを押してください。 SEQ フィールド テキスト LEN DEC TKSTS 状態 1 2 TKTKNO 得意先№ 5 3 TKNMKJ 得意先名 42 O 4 TKNMKN 得意先カナ名 20 5 TKTEL TEL 12 1 TKSLNO 担当営業№ 4 TKFLAG フラグ 1 6 TKURJS 売上実績 11 0 終り F3= 終了 F5= 報告書 F11= 名前のみの表示 F12= 取消し F13= レイアウト F20= 番号つけ直し F21= すべての選択 F24= キーの続き
ここではフィールドの選択および順序付けを番号で行います。
番号を入力しないフィールドは出力されません。
番号を入力して実行キーを押すと番号順に整列されます。
フィールドの選択および順序付け 報告書に表示したい 500 以内のフィールド名に順序番号 (0-9999) を入力して, 実行キーを押してください。 SEQ フィールド テキスト LEN DEC 1 TKSLNO 担当営業№ 4 2 TKTKNO 得意先№ 5 3 TKNMKJ 得意先名 42 O 4 TKNMKN 得意先カナ名 20 5 TKTEL TEL 12 6 TKURJS 売上実績 11 0 TKSTS 状態 1 TKFLAG フラグ 1 終り F3= 終了 F5= 報告書 F11= 名前のみの表示 F12= 取消し F13= レイアウト F20= 番号つけ直し F21= すべての選択 F24= キーの続き 実行キーを押して確認してください。
実行キーをおすと、QUERY定義の画面に戻ります。
番号が複雑になったときはF20キーで番号のつけ直しができます。10番とびになります。
レイアウトのチェック
印刷出力する場合、レイアウトをチェックするときはF13キーでチェックできます。
報告書レイアウトの表示 報告書の幅 . . . . . : 121 行の位置指定 . . . . . . . 桁移動 . . . . . . . . . . 行 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 担当営業№ 得意先№ 得意先名 000001 XXXX XXXXX OOOOOOOOOOOOOOOOOOOO XX ****** ******** 報告書レイアウトの終り ********
桁移動のフィールドに表示開始の桁を入力して移動できます。
上の例では、132桁の幅に入ることがわかります。
報告書レイアウトの表示 報告書の幅 . . . . . : 121 行の位置指定 . . . . . . . 桁移動 . . . . . . . . . . 73 行 ..+....8....+....9....+...10....+...11....+...12. 意先カナ名 TEL 売上実績 000001 XXXXXXXXXXXXXXXXXX XXXXXXXXXXXX 99,999,999,999 ****** ******** 報告書レイアウトの終り ********
◆レコードの選択
レコードの選択 比較条件を入力し実行キー。新しい各グループを始めるにはORを指定してください。 テスト: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... AND/OR フィールド テスト 値 (フィールド, 数値,'文字' , または ...) TKTKNO GE '11100' AND TKTKNO LE '11199' 終り フィールド テキスト LEN DEC TKSLNO 担当営業№ 4 TKTKNO 得意先№ 5 TKNMKJ 得意先名 42 O TKNMKN 得意先カナ名 20 TKTEL TEL 12 続く ... F3= 終了 F5= 報告書 F9= 挿入 F11= 名前のみの表示 F12= 取消し F13= レイアウト F20= 再編成 F24= キーの続き
ここでは、選択条件をセットします。
上の例では得意先№が11100から11199のレコードだけ選択しています。
画面下半分はフィールドの一覧になっているので、参照できます。下半分をスクロールさせるにはカーソルを
下半分の位置において、スクロールキーを押します。
選択条件をセットして実行キーをおすと、QUERY定義の画面に戻ります。
◆分類フィールドの選択
希望の項目順に表示をさせたい場合には、「分類フィールドの選択」を選択します。
次のような画面が表示されます。
ここでは分類の優先順と昇順(A)か降順(D)かを指定します。指定を省略すると昇順になります。
分類フィールドの選択 32 以内のフィールド名の分類優先順位 (0-999) およびA(昇順)またはD(降順) を入力して,実行キーを押してください。 分類 PRTY A/D フィールド テキスト LEN DEC 1 TKSLNO 担当営業№ 4 TKTKNO 得意先№ 5 TKNMKJ 得意先名 42 O TKNMKN 得意先カナ名 20 TKTEL TEL 12 2 D TKURJS 売上実績 11 0 終り F3= 終了 F5= 報告書 F11= 名前のみの表示 F12= 取消し F13= レイアウト F18= ファイル F20= 番号つけ直し F24= キーの続き
上の例では、担当営業順、売上げ実績の多い順に指定しています。
実行キーを押すと分類の優先順に、ならべなおします。
分類 PRTY A/D フィールド テキスト LEN DEC 1 A TKSLNO 担当営業№ 4 2 D TKURJS 売上実績 11 0 TKTKNO 得意先№ 5 TKNMKJ 得意先名 42 O TKNMKN 得意先カナ名 20 TKTEL TEL 12
さらに確認(画面変更をしないで実行キー)を押すと、QUERY定義の画面に戻ります。
◆照合順序の選択
省略します。
◆報告書の欄の形式指定
出力の編集を行う場合には、QUERY定義の選択で「報告書の欄の形式指定」を選択します。
つぎのような画面が表示されます。
ここでは、欄の間隔、欄見出し語句の修正、数値項目の編集指定などを行います。
例えば、日付をYY-MM-DDの形に編集するなどの場合は、F16キーを押し、拡張の
指定画面を開きます。
報告書の欄の形式指定 情報を入力して,実行キーを押してください。 欄見出し: *NONE, または位置合せしたテキスト 欄の フィールド 間隔 欄見出し LEN DEC 編集 TKSLNO 0 担当営業№ 4 TKTKNO 2 得意先№ 5 TKNMKJ 2 得意先名 42 O 続く ... F3= 終了 F5= 報告書 F10= プロセス/前画面 F12= 取消し F13= レイアウト F16= 編集 F18= ファイル F23= 詳細注記
指定を終わって実行キーを押すと、QUERY定義の画面に戻ります。
◆計算機能の選択
合計計算などを行う場合は、「計算機能の選択」を選択します。
次のような画面が表示されます。計算機能をオプションで指定します。
ここでは売り上げ実績の合計計算を選択しています。
計算機能の選択 オプションを入力して,実行キーを押してください。 1= 合計 2= 平均 3= 最小 4= 最大 5= カウント ---オプション--- フィールド テキスト LEN DEC TKSLNO 担当営業№ 4 TKTKNO 得意先№ 5 TKNMKJ 得意先名 42 O TKNMKN 得意先カナ名 20 TKTEL TEL 12 1 TKURJS 売上実績 11 0 終り F3= 終了 F5= 報告書 F10=プロセス /前画面 F11= 名前のみの表示 F12= 取消し F13= レイアウト F18= ファイル F23= 詳細注記
指定を終わって実行キーを押すと、QUERY定義の画面に戻ります。
◆制御レベルの定義
キーブレーク処理(グループ合計など)を行う場合、「制御レベルの定義」を選択します。
次のような画面が表示されます。制御レベルを1~6で示します。
上の例では、担当営業でキーブレーク処理を指定しています。
制御レベルの定義 9個以内のフィールド名に制御レベル (1-6) を入れて,実行キーを押してください。 (各制御レベルに必要な数のフィールドを使用してください。) 制御 分類 レベル PRTY フィールド テキスト LEN DEC 1 10 TKSLNO 担当営業№ 4 TKTKNO 得意先№ 5 TKNMKJ 得意先名 42 O TKNMKN 得意先カナ名 20 TKTEL TEL 12 20 TKURJS 売上実績 11 0 終り F3= 終了 F5= 報告書 F10=プロセス /前画面 F11= 名前のみの表示 F12= 取消し F13= レイアウト F18= ファイル F23= 詳細注記
入力をして実行キーを押すと、ブレーク処理の指定画面が表示されます。
制御の切れ目における処理の指定 制御レベル . . . . . . . : 0 選択項目を入力して,実行キーを押してください。 (制御レベルの値を挿入するには, テキスト に &フィールド を入力してください。) 計算機能の抑制 . . . . . N Y=YES, N=NO 制御レベルのテキスト . . 最終合計 レベル フィールド 1 TKSLNO F3= 終了 F5= 報告書 F10=プロセス /前画面 F12= 取消し F13= レイアウト F18= ファイル F23= 詳細注記
制御レベル0は総合計です。
計算機能の抑制Nは「抑制をしない」すなわち、「計算をする」を意味します。
ついで、先に指定した制御レベル1での処理の指定画面が表示されます。
制御の切れ目における処理の指定 制御レベル . . . . . . . : 1 選択項目を入力して,実行キーを押してください。 (制御レベルの値を挿入するには, テキスト に &フィールド を入力してください。) 新しいページへのスキップ N Y=YES, N=NO 計算機能の抑制 . . . . . N Y=YES, N=NO 制御レベルのテキスト . . 担当計 レベル フィールド 1 TKSLNO F3= 終了 F5= 報告書 F10=プロセス /前画面 F12= 取消し F13= レイアウト F18= ファイル F23= 詳細注記
制御レベルのテキストでは「担当計」を設定しています。
入力をして実行キーを押すと、QUERY定義の画面に戻ります。
制御レベルの指定をしての出力はつぎのようになります。
出力項目を以前の例から一部変更しています。
00/09/05 16:47:36 得意先一覧表 ページ 1 担当 得意先№ 得意先カナ TEL 売上実績 1111 11114 シテンノウジショウテン-------; 03-1111-1144 44,014,000 11118 ヤツアタリショクヒンサンギョウ---; 03-1111-1188 3,318,000 担当計 合計 47,332,000 1122 11111 イチバンボシショウジ======; 03-1111-1122 44,014,000 担当計 合計 44,014,000 2222 11115 ゴモクチラシインサツカブ----; 03-1111-1155 550,015,000 11119 クソウバイヤクヒンハンバイ----; 03-1111-1199 44,019,000 11112 ニバンセンジコウギョウ-----; 03-1111-1111 11,000 担当計 合計 594,045,000 3333 11113 サンバガラスコウギョウ-----; 03-1111-1133 212,000 11116 ロクジゾウノウキグハンバイ--; 03-1111-1166 16,000 担当計 合計 228,000 4444 11117 シチフクジンプレス(ユウ)----; 03-1111-1177 217,000 担当計 合計 217,000 最終合計 合計 685,836,000 * * * 報 告 書 の 終 り * * *
既存のQUERYの実行
QUERYプログラムがすでにある場合、それを実行するにはユーティリティメニューの
「既存の QUERY プログラムの実行」(下記で番号2)を選択します。
QUERY QUERY ユーティリティー システム : S1234567 次の中から1つを選んでください。 QUERY/400 1. QUERY の処理 2. 既存の QUERY プログラムの実行 3. QUERY 定義の削除 DB2/400 10. DB2/400 QUERY 管理機能の開始 QUERY 管理機能 20. QUERY 管理機能書式の処理 21. QUERY 管理機能における QUERY の処理 22. QUERY の開始 23. QUERY/400 定義の分析 続く ... 選択項目またはコマンド ===> 2 F3= 終了 F4=プロンプト F9=コマンド の複写 F12= 取消し F13= 情報援助 F16=AS/400 メイン・メニュー
「既存の QUERY プログラムの実行」を選択して実行キーを押すと次のような画面が表示されます。
QUERY 実行 (RUNQRY) 選択項目を入力して,実行キーを押してください。 QUERY . . . . . . . . . . . . . TEST 名前 , *NONE ライブラリー . . . . . . . . *LIBL 名前 , *LIBL, *CURLIB QUERY ファイル : ファイル . . . . . . . . . . 名前 , *SAME ライブラリー . . . . . . . *LIBL 名前 , *RUNOPT, *LIBL... メンバー . . . . . . . . . . *FIRST 名前 , *RUNOPT, *FIRST... 値の続きは+ 報告書出力のタイプ . . . . . . *RUNOPT *RUNOPT, *DISPLAY... 出力書式 . . . . . . . . . . . *RUNOPT *RUNOPT, *DETAIL, *SUMMARY レコード選択 . . . . . . . . . *NO *NO, *YES 終り F3= 終了 F4=プロンプト F5= 最新表示 F12= 取消し F13= この画面の使用法 F24= キーの続き
注:この画面はコマンドを入力できる画面で、RUNQRYと入力してF4キーを押しても表示できます。
同じ様式のファイルであれば、(たとえば、受注の1月分、2月分のような)QUERY
定義したときとは別のファイルを指定しての実行もできます。
この既存のQUERYの実行は、コマンドラインから次のように入力するのと同じです。
RUNQRY QRY(QTEMP/TEST)
ファイル指定をする場合は次のようになります。
RUNQRY QRY(QTEMP/TEST) QRYFILE((WRKLIB/M420))
CLプログラムへの組込み
既存のQUERYはRUNQRYコマンドで実行できるので、そのままメニュープログラムのような、CLプログラムに
組込むことができます。
CLプログラムの中では、ライブラリーやQUERY名、ファイル名を変数の形で指定することもできます。
前ページ 次ページ もどる 目次
(C)COPYRIGHT ISHIOKA KATSUHIDE , 2000