このドキュメントでは、次のトピックについて説明します。
関連ステートメント:ADD | COMPRESS | COMPUTE | DIVIDE | EXAMINE | MOVE | MOVE ALL | MULTIPLY | RESET | SEPARATE
関連機能グループ:「算術演算とデータ移動操作」
SUBTRACT
ステートメントは、複数のオペランドの値を減算するために使用します。
データベースフィールドを結果フィールドとして使用した場合、SUBTRACT
演算ではプログラム内で使用される内部値のみが更新されます。 データベース内のフィールドの値は変更されないまま維持されます。
SUBTRACT [ROUNDED ] operand1 FROM operand2
|
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | ステートメント参照 | ダイナミック定義 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | A | N | N | P | I | F | D | T | 可 | 不可 | |||||||
operand2 | S | A | M | N | P | I | F | D | T | 可 | 不可 |
構文要素の説明:
operand1 FROM operand2 |
オペランド:
operand1 は被減数、operand2 は減数です。したがって、ステートメントは次と等しくなります。 <oper2> := <oper2> - <oper1> オペランドのフォーマットについては、「算術割り当てのルール」の「フォーマット混合式のパフォーマンスについて」(『プログラミングガイド』)も参照してください。 |
---|---|
ROUNDED |
切り上げ:
キーワード |
SUBTRACT [ROUNDED ] operand1 FROM operand2GIVING operand3
|
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | ステートメント参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | A | N | N | P | I | F | D | T | 可 | 不可 | ||||||||
operand2 | C | S | A | N | N | P | I | F | D | T | 可 | 不可 | ||||||||
operand3 | S | A | M | A | U | N | P | I | F | B* | D | T | 可 | 可 |
*operand3 のフォーマット B は、4 以下の長さでのみ使用できます。
構文要素の説明:
GIVING |
結果フィールド:
|
---|---|
operand1 FROM operand2 GIVING operand3 |
オペランド:
operand2 は被減数、operand1 は減数、operand3 は結果フィールドです。したがって、ステートメントは次と等しくなります。 <oper3> := <oper2>- <oper1> オペランドのフォーマットについては、「フォーマット混合式のパフォーマンスについて」(『プログラミングガイド』)も参照してください。 |
ROUNDED |
切り上げ:
キーワード |
** Example 'SUBEX1': SUBTRACT ************************************************************************ DEFINE DATA LOCAL 1 #A (P2) INIT <50> 1 #B (P2) 1 #C (P1.1) INIT <2.4> END-DEFINE * SUBTRACT 6 FROM #A WRITE NOTITLE 'SUBTRACT 6 FROM #A ' 10X '=' #A * SUBTRACT 6 FROM 11 GIVING #A WRITE 'SUBTRACT 6 FROM 11 GIVING #A ' 10X '=' #A * SUBTRACT 3 4 FROM #A GIVING #B WRITE 'SUBTRACT 3 4 FROM #A GIVING #B ' 10X '=' #A '=' #B * SUBTRACT -3 -4 FROM #A GIVING #B WRITE 'SUBTRACT -3 -4 FROM #A GIVING #B' 10X '=' #A '=' #B * SUBTRACT ROUNDED 2.06 FROM #C WRITE 'SUBTRACT ROUNDED 2.06 FROM #C ' 10X '=' #C * END
SUBTRACT 6 FROM #A #A: 44 SUBTRACT 6 FROM 11 GIVING #A #A: 5 SUBTRACT 3 4 FROM #A GIVING #B #A: 5 #B: -2 SUBTRACT -3 -4 FROM #A GIVING #B #A: 5 #B: 12 SUBTRACT ROUNDED 2.06 FROM #C #C: 0.3