5.17 -csvsumパラメタ
- 意味
-
CSVファイルの集約項目を指定します。
このパラメタは,CSVファイルを指定した場合だけ有効です。CSVファイル以外を指定した場合は,KBLS1213-Eエラーとなります。
- 形式
-csvsum [△csv-field-definition [△csv-field-definition … ] ]
-
-csvsumパラメタを指定する場合は,-csvkeyパラメタを必ず指定してください。
-
-function copyと組み合わせて指定する場合,入力ファイルはあらかじめ集約キーでソートしておく必要があります。ソートしていない場合は,集約の結果は保証されません。
-
-function copyと組み合わせる場合,入力ファイルは1つだけ指定してください。
-
このパラメタに指定したセルに対応するデータが入力されなかった場合,NULLセルとして処理します。NULLセルの扱いについては,「付録D CSVファイル内のNULLセルの扱い(SORT EEの機能)」を参照してください。
-
-csvkeyパラメタに指定したセル番号を,-csvsumパラメタに指定しないでください。
-
環境ファイル「EXS_CSVSUMNUMMAX」の「最大個数の倍数」を指定していない場合,指定できる集約項目の個数は0〜128個です。集約項目の最大個数は「128×n個」の単位で,1,280個(128×10)まで拡張できます。129個以上の集約項目を指定したい場合は,環境ファイル「EXS_CSVSUMNUMMAX」の「最大個数の倍数」に,「128×n個」のnの値を指定してください。
-
環境ファイル「EXS_CSVSUMNUMMAX」の「合計長の上限の倍数」を指定していない場合,指定できる集約項目の合計長は4,096バイトです。集約項目の合計長は「4,096×mバイト」の単位で,65,536バイト(4,096×16)まで拡張できます。4,097バイト以上の合計長を指定したい場合は,環境ファイル「EXS_CSVSUMNUMMAX」の「合計長の上限の倍数」に,「4,096×mバイト」のm値を指定してください。
-
集約項目を指定しない場合(集約項目の個数が0個),同じキーを持つ連続したレコードがあるときは,最初に配置されているレコードだけを抽出します。これを無条件レコード抽出機能といいます。
- csv-field-definitionの形式1
field-attribute+cellpos−p[,s] [△field-attribute+cellpos−p[,s] … ]
-
数値データ(固定小数点数)のセルを定義します。
-
field-attributeには,「z」だけを指定できます。
-
field-attribute+cellpos−p[,s]は必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。
-
field-attribute+cellpos−p[,s]を複数指定する場合は,1個以上の空白またはタブで区切って指定します。
-
- csv-field-definitionの形式2
csvfield-name [△csvfield-name … ]
-
csvfield-nameを複数指定する場合は,1個以上の空白またはタブで区切って指定します。
-
-
- 指定値
-
- field-attribute
-
集約項目の属性を指定します。
z:集約項目が固定小数点数であることを指定します。
- +cellpos
-
レコード内の処理対象セル(列)の位置を,番号で指定します。
レコードの先頭セル番号を「1」,最大セル番号を「n」とし,1〜nまでの番号を指定します。最大セル番号は,16,384番となります。
- −p [,s]
-
固定小数点データの有効桁を10進数で指定します。
-
p(precision:精度)は,固定小数点データの総桁数を表します。pからsを引いた桁が整数部の有効桁となります。
-
pに指定できる桁の範囲は,1〜38桁です。
-
s(scale:位)は,固定小数点データの小数部(小数点以下)の有効桁を表します。
-
sに指定できる桁の範囲は,0〜p桁です(0≦s≦p)。
-
sを省略した場合は,0(小数部なし)を仮定します。
-
データ中の引用符囲み,符号,通貨記号,桁修飾文字(コンマ,小数点,空白)は,有効桁に含みません。
-
- field-name
-
集約項目を入力ファイルパラメタのcsvfieldオペランドで定義したフィールド名で指定します。
-
field-attributeと同じ属性を定義したフィールド名だけ指定できます。
-
- 注意事項
-
-
すべて空白文字の集約項目は,0(ゼロ)として扱います。ただし,集約した範囲(オーバーフローが発生する前まで)のすべての集約項目が空白だった場合は,集約結果も空白で出力します。
【例】
-csvsum z+2-4を指定した場合(2セル目を有効桁4桁(小数以下0桁)で集約項目として指定)
-
NULLセル(空のセル)の集約項目は,0(ゼロ)として扱います。ただし,集約した範囲(オーバーフローが発生する前まで)のすべての集約項目がNULLセルだった場合は,集約結果もNULLセルで出力します。詳細は,「付録D CSVファイル内のNULLセルの扱い(SORT EEの機能)」を参照してください。
-
NULLセルを集約対象としたくない場合は,コマンドオプション「SUMNONUL」を指定してください。SUMNONULオプションを指定すると,NULLセルは集約されずに1個のレコードで出力します。SUMNONULオプションについては,「5.5.19 NULLセルの集約オプション(SUMNULKEY,SUMNONULLオプション)」を参照してください。
-
NULLセル(空のセル)の集約キーは同値として集約します。NULLセルを同値として扱いたくない場合は,コマンドオプション「SUMKEYNUL」を指定してください。SUMKEYNULオプションを指定すると,NULLセルのキーの集約項目は集約されず,1個のレコードで出力されます。SUMKEYNULオプションについては,「5.5.19 NULLセルの集約オプション(SUMNULKEY,SUMNONULLオプション)」を参照してください。
-
入力データの桁あふれはオーバーフローと判定されます。例えば,有効桁数が5桁,小数部2桁と指定した場合,最小値は「-999.99」,最大値は「+999.99」です。この指定に対して,入力データが「1000」や「-999.999」など,整数部または小数部が桁あふれしていればオーバーフローとなります。
-
入力データが桁あふれしていなければ,丸め処理をします。丸め処理の結果,整数部が桁あふれした場合はオーバーフローとなります。丸め方法は,環境ファイルの「EXS_ROUND」または-inpfile,-catinp,-splitinpパラメタのroundオペランドに指定した方法を適用します。丸め方法の詳細については,「5.8.11 roundオペランド」を参照してください。
-
指定された有効桁よりも大きい桁の入力データを検出した場合,KBLS1012-Iインフォメーションメッセージを出力して正常終了します。KBLS1012-Iが出力された場合は,-csvsumに指定した有効桁を見直してください。
-
入力データの丸め処理でオーバーフローを検出した場合,KBLS1013-Iインフォメーションメッセージを出力して正常終了します。KBLS1013-Iが出力された場合は,-csvsumに指定した有効桁と,roundオペランドに指定した丸め方式を見直してください。
-
集約した結果のセルの書式は,次に示す書式に合わせて出力します。
[通貨記号][符号]数字※[小数点][数字][符号]
注※ 整数部の有効桁によっては,桁区切りのコンマが含まれます。
書式
説明
有効桁
指定された有効桁に合わせます。
-
小数部の桁を指定している場合は,小数点も付加されます。小数部の有効桁が指定されていない場合(s=0)は,整数部だけです。
-
整数部の有効桁が指定されていない場合(p-s=0)は,整数部は必ず「0.」とします。
通貨記号
集約した範囲(オーバーフローが発生する前まで)のすべての集約項目に通貨記号が含まれている場合,通貨記号を付加します。通貨記号は,左端に付加されます。
符号位置
集約した範囲(オーバーフローが発生する前まで)の集約項目のうち,最初の符号付きの位置に合わせます。
-
最初の符号付きの符号位置が左側の場合,符号の位置は整数部の左側です。
-
最初の符号付きの符号位置が右側の場合,符号の位置は小数部の右側です。
符号
集約した範囲(オーバーフローが発生する前まで)の集約項目のうち,「+」の符号が含まれている集約項目が1個でもあれば,正値の集約結果に「+」を付加します。
「+」の符号を含む集約項目が1個もなければ,符号は付加しません。
また,集約結果が負値の場合は,「-」を付加します。
桁区切り
集約した範囲(オーバーフローが発生する前まで)の集約項目のうち,桁区切り(コンマ)が含まれている集約項目が1個でもあれば,整数部に桁区切りを付加します。
桁区切りは,3桁ごとにコンマを付加します。
桁区切り(コンマ)を含む集約項目が1個もなければ,桁区切りは付加しません。
-
-
集約した結果を引用符で囲んだ形式で出力したい場合は,-outfile,-catoutおよび-splitoutパラメタのquottypeオペランドで引用符を付加する指定をしてください。quottypeオペランドについては,「5.10.8 quottypeオペランド」を参照してください。
-
同じキーを持つ連続したレコードのうち,最初に配置されているレコードを基に集約レコードを作成して出力します。SUMNONULLオプションの指定がなく,かつ最初に配置されているレコードに集約項目のセルがない場合,集約項目のセルが付加されます。また,元のレコードの最後のセルと集約項目のセルの間に間隔が生じる場合には,NULLセル(空のセル)が作成されます。
【例1】SUMNONULLオプション指定なし
集約キー:c+1-5(セル1)
集約項目:z+4-4(セル4)
【例2】SUMNONULLオプション指定あり
集約キー:c+1-5(セル1)
集約項目:z+4-4(セル4)
-
入力レコードの連続区切り文字オプション(INPCONSEPA)だけが指定されている場合,作成されるNULLセルは,引用符で囲んだ形式となります。出力レコードの連続区切り文字オプション(OUTCONSEPA)の指定がある,またはINPCONSEPAとOUTCONSEPAの両方の指定がない場合は,NULLセルを引用符で囲みません。
-
レコード結合機能(-joindata,-joininp,-joinoutパラメタ)と同時に指定できません。同時に指定した場合KBLS1106-Eエラーとなります。
-
- 関連パラメタ・オペランド
-
-
-csvkeyパラメタ
-
-cmdoptパラメタ SUMNULKEY,SUMNONULオペランド
-
-cmdoptパラメタ INPCONSEPA,OUTCONSEPAオペランド
-
-inpfileパラメタ roundオペランド
-
-outfileパラメタ quottypeオペランド
-