HISTOGRAM |
[MULTI-FETCH-clause] [multi-fetch-factor] [IN ] [FILE ] view-name |
|||||
[PASSWORD= operand2] |
||||||
[IN ]
|
[SEQUENCE ] |
|||||
[VALUE ] [FOR ] [FIELD ] operand4 |
||||||
[STARTING/ENDING-clause] | ||||||
[WHERE logical-condition]
|
||||||
statement | ||||||
END-HISTOGRAM |
(ストラクチャードモードのみ) | |||||
LOOP |
(レポーティングモードのみ) |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:ACCEPT/REJECT
| AT BREAK
| AT START OF DATA
| AT END OF DATA
| BACKOUT TRANSACTION
| BEFORE BREAK PROCESSING
| DELETE
| END TRANSACTION
| FIND
| GET
| GET SAME
| GET TRANSACTION DATA
| LIMIT
| PASSW
| PERFORM BREAK PROCESSING
| READ
| RETRY
| STORE
| UPDATE
関連機能グループ:データベースへのアクセスと更新
HISTOGRAM
ステートメントは、ディスクリプタ、サブディスクリプタ、またはスーパーディスクリプタとして定義されているデータベースフィールドの値を読むために使用します。値は Adabas インバーテッドリストから直接読み取られます。HISTOGRAM
ステートメントは、処理ループを開始します。ただし、HISTOGRAM
ステートメントで定義したフィールド以外のフィールドを参照することはできません。
『プログラミングガイド』の次のセクションも参照してください。
注意:
SQL データベースの場合:HISTOGRAM
は特定の列に同じ値を持つ行の数を返します。
XML データベースでは、このステートメントを使用できません。
Entire System Server では、このステートメントを使用できません。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | N | P | I | B * | ○ | × | ||||||||||||
operand2 |
C | S | A | ○ | × | |||||||||||||||
operand3 |
S | A | ○ | × | ||||||||||||||||
operand4 |
S | A | N | P | I | F | B | D | T | L | × | × |
* operand1
のフォーマット B は、4 以下の長さでのみ使用できます。
構文要素の説明:
構文要素 | 説明 |
---|---|
operand1 / ALL |
ディスクリプタ値の数:
このステートメントでは、指定した制限が、
注意: |
MULTI-FETCH-clause |
MULTI-FETCH 節:
以下の「MULTI-FETCH 節」を参照してください。 |
view-name |
ビュー名:
ビュー内には ビューのフィールドが、添字範囲付きで定義されたピリオディックグループフィールドまたはマルチプルバリューフィールドの場合、その範囲の最初のオカレンスだけが レポーティングモードでは、 |
PASSWORD=operand2 |
PASSWORD 節:
パスワードで保護された Adabas ファイルを検索する場合は、 |
SEQUENCE |
SEQUENCE 節:
この節は、Adabas、SQL データベースに対してだけ使用できます。 この節を使用して、レコードを昇順または降順のどちらで読み取るかを指定できます。
|
operand4 |
ディスクリプタ:
operand4 として、ディスクリプタ、サブディスクリプタ、スーパーディスクリプタ、またはハイパーディスクリプタが指定できます。 ピリオディックグループに含まれるディスクリプタをインデックス付きまたはなしで指定できます。インデックスなしで指定した場合、ディスクリプタは指定した値がいずれかのオカレンスに見つかった場合に選択されます。インデックス付きで指定した場合、レコードは値がインデックスで指定したオカレンス内に見つかった場合にのみ選択されます。インデックスは定数で指定する必要があります。インデックス範囲は使用できません。 MU のディスクリプタでは、インデックスを指定しないでください。値の位置に関係なく、値がレコードに存在していればディスクリプタは選択されます。 |
STARTING-ENDING-clause |
STARTING/ENDING 節:
開始値と終了値は、キーワード 詳細については、以下の「Starting/Ending 値の指定」を参照してください。 |
WHERE
logical-condition |
WHERE 節:
|
END-HISTOGRAM |
HISTOGRAM ステートメントの終了:
ストラクチャードモードでは、 レポーティングモードの場合、Natural のステートメント |
LOOP |
注意:
この節は、Adabas データベースでのみ使用できます。
MULTI-FETCH |
|
注意:[MULTI-FETCH OF
multi-fetch-factor]
は、データベースタイプ ADA
および ADA2
に対して評価されません。デフォルト処理モードが適用されます(プロファイルパラメータ MFSET
を参照)。MULTI-FETCH
節は、データベースタイプ ADA2
, で使用しても完全に無視されます(『コンフィグレーションユーティリティ』ドキュメントの「データベース管理システムの割り当て」を参照)。
詳細については、『プログラミングガイド』の「MULTI-FETCH 節」(Adabas)
開始値と終了値は、キーワード STARTING
および ENDING
(または THRU
)の後に、処理を開始/終了する値を示す定数またはユーザー定義変数を続けて指定できます。
指定された開始値が存在しない場合は、次に高い値が開始値として使用されます。高い値がまったくないときは、HISTOGRAM
ループ内に入りません。
終了値を指定すると、終了値までの(終了値を含む)値が読まれます。
フォーマットが A または B のディスクリプタに対しては、開始値および終了値として 16 進定数を指定できます。
構文オプション 1:
[STARTING ]
|
|
[VALUES ] operand5 |
THRU |
operand6 | |||||||||
ENDING AT |
構文オプション 2:
[STARTING ]
|
|
[VALUES ] operand5 |
TO |
operand6 |
構文オプション 3:
< | operand5 | ||
LT |
|||
LESS
THAN |
|||
> | |||
GT |
|||
GREATER
THAN |
|||
<= |
|||
LE |
|||
LESS
EQUAL |
|||
>= |
|||
GE |
|||
GREATER
EQUAL |
注意:
図 3 の比較演算子を使用した場合は、オプション ENDING
AT
、THRU
、TO
は使用できません。これらの比較演算子は READ
ステートメントにも有効です。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand5 |
C | S | A | U | N | P | I | F | B | D | T | L | ○ | × | ||||||
operand6 |
C | S | A | U | N | P | I | F | B | D | T | L | ○ | × |
構文要素の説明:
注意:READ
/HISTOGRAM
THRU
/ENDING AT
の結果は、Natural とアクセスされたデータベースが別のプラットフォーム上にあり、照合順序が異なる場合、READ
/HISTOGRAM
TO
の結果とは異なる可能性があります。
Natural システム変数 *ISN
、*NUMBER
および *COUNTER
が HISTOGRAM
ステートメントで使用できます。
*NUMBER
および *ISN
は、WHERE
節の評価後に設定されます。これらを WHERE
節の論理条件に使用しないでください。
システム変数 | 説明 |
---|---|
*NUMBER |
システム変数 SQL データベースについては、『システム変数』ドキュメントの「SQL データベースに対する *NUMBER」を参照してください。 |
*ISN |
システム変数
|
*COUNTER |
システム変数 *COUNTER には、読まれた値の個数の合計が入ります(WHERE 節の評価後)。
|
** Example 'HSTEX1S': HISTOGRAM (structured mode) ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 CITY END-DEFINE * LIMIT 8 HISTOGRAM EMPLOY-VIEW CITY STARTING FROM 'M' DISPLAY NOTITLE CITY 'NUMBER OF/PERSONS' *NUMBER *COUNTER END-HISTOGRAM * END
CITY NUMBER OF CNT PERSONS -------------------- ----------- ----------- MADISON 3 1 MADRID 41 2 MAILLY LE CAMP 1 3 MAMERS 1 4 MANSFIELD 4 5 MARSEILLE 2 6 MATLOCK 1 7 MELBOURNE 2 8
レポーティングモードの例については、次のプログラムを参照してください:HSTEX1R
。
** Example 'HSTDSCND': HISTOGRAM (with DESCENDING) *********************************************************************** DEFINE DATA LOCAL 1 EMPL VIEW OF EMPLOYEES 2 NAME END-DEFINE * HISTOGRAM (10) EMPL IN DESCENDING SEQUENCE FOR NAME FROM 'ZZZ' DISPLAY NAME *NUMBER END-HISTOGRAM END
Page 1 05-01-13 13:41:03 NAME NMBR -------------------- ----------- ZINN 1 YOT 1 YNCLAN 1 YATES 1 YALCIN 1 YACKX-COLTEAU 1 XOLIN 1 WYLLIS 2 WULFRING 1 WRIGHT 1
** Example 'HSTVSEQ': HISTOGRAM (with VARIABLE SEQUENCE) *********************************************************************** DEFINE DATA LOCAL 1 EMPL VIEW OF EMPLOYEES 2 NAME * 1 #DIR (A1) 1 #STARTVAL (A20) END-DEFINE * SET KEY PF3 PF7 PF8 * MOVE 'ADKINSON' TO #STARTVAL * HISTOGRAM (9) EMPL FOR NAME FROM #STARTVAL WRITE NAME *NUMBER IF *COUNTER = 5 MOVE NAME TO #STARTVAL END-IF END-HISTOGRAM * #DIR := 'A' * REPEAT HISTOGRAM EMPL IN VARIABLE #DIR SEQUENCE FOR NAME FROM #STARTVAL MOVE NAME TO #STARTVAL INPUT NO ERASE (IP=OFF AD=O) 15/01 NAME *NUMBER // 'Direction:' #DIR // 'Press PF3 to stop' / ' PF7 to go step back' / ' PF8 to go step forward' / ' ENTER to continue in that direction' /* IF *PF-KEY = 'PF7' AND #DIR = 'A' MOVE 'D' TO #DIR ESCAPE BOTTOM END-IF IF *PF-KEY = 'PF8' AND #DIR = 'D' MOVE 'A' TO #DIR ESCAPE BOTTOM END-IF IF *PF-KEY = 'PF3' STOP END-IF END-HISTOGRAM /* IF *COUNTER(0250) = 0 STOP END-IF END-REPEAT END
Page 1 05-01-13 13:50:31 ADKINSON 8 AECKERLE 1 AFANASSIEV 2 AHL 1 AKROYD 1 ALEMAN 1 ALESTIA 1 ALEXANDER 5 ALLEGRE 1 MORE
Page 1 05-01-13 13:50:31 ADKINSON 8 AECKERLE 1 AFANASSIEV 2 AHL 1 AKROYD 1 ALEMAN 1 ALESTIA 1 ALEXANDER 5 ALLEGRE 1 AKROYD 1 Direction: A Press PF3 to stop PF7 to go step back PF8 to go step forward ENTER to continue in that direction