はじめに
弊社では長年に渡り、様々なお客様のもとでIBM Power Systems(IBM i 、AS/400)における基幹システムを開発させていただいております。
本稿では、SQL文からQMQRYオブジェクトを作成する方法のご案内をいたします。
本稿の狙いは下記のとおりです。
・特定のSQL文を繰り返し使用したい。
・CLプログラム中でもSQL文を実行できるようにしたい。
・1本のQUERYプログラムでは実現できない処理でも、1本のSQL文で処理を実現できるような場合に、QUERYプログラムではなくQMQRYオブジェクトを用いることで、開発するオブジェクト数を削減したい。
本稿の題材
年月別・得意先別の売上金額集計ファイルをSQLで自己結合して、昨年対比を出力(照会)するSQLを1本のQMQRYオブジェクトにしてみます。
※自己結合による昨年対比は、1本のQUERYプログラムでは実現は難しいかと思われますため、ここでの題材としております。
参照する売上金額集計ファイル定義は下記のとおりです。
手順
手順1:SRCファイルを作成します
SQL文を記述しておくためのSRCファイルを、下記のコマンドで作成します。
CRTSRCPF FILE(QTEMP/QQMQRYSRC) RCDLEN(91) IGCDTA(*YES)
手順2: 手順1で作成したSRCファイルに、SQL文を記述したSRCメンバーを作成します
ここではSEUで作成します。
※YYYYMM(年月)は、6桁Sタイプで定義されているので、+100で1年後を表現します。
手順3:QMQRYオブジェクトの作成コマンドを実行します
CRTQMQRY QMQRY(QTEMP/URIQMQRY) SRCFILE(QTEMP/QQMQRYSRC)
手順4:試しに、コマンドラインから手順3のオブジェクトを実行してみます
STRQMQRY QMQRY(QTEMP/URIQMQRY)
実行結果は下記のようになりました。
最後までお読みいただきまして、ありがとうございます。
ご参考になりましたら幸いです。