DEFINE FIELD . . . COMPUTED コマンド
Analytics テーブル レイアウトの演算フィールドを定義します。
構文
演算フィールドを定義するには
DEFINE FIELD フィールド名 COMPUTED 式
オプション パラメーターを持つ演算フィールドを定義するには
DEFINE FIELD フィールド名 COMPUTED <IF テスト> <STATIC> <PIC 書式> <AS 表示名> <WIDTH 文字> <SUPPRESS> <フィールド メモ> 式
条件付き演算フィールドを定義するには
DEFINE FIELD フィールド名 COMPUTED *** BLANK_LINE *** 値 IF 条件 <値 IF 条件> <...n> デフォルト値
オプション パラメーターを持つ条件付き演算フィールドを定義するには
DEFINE FIELD フィールド名 COMPUTED <IF テスト> <STATIC> <PIC 書式> <AS 表示名> <WIDTH 文字> <SUPPRESS> <フィールド メモ> 値 IF 条件 <値 IF 条件> <...n> デフォルト値
メモ
上記の一般的な構文は、以下の例に示すように、複数行の構文は正確に構造化される必要があります。
パラメーター
名前 | 説明 |
---|---|
フィールド名 |
演算フィールド名。 メモ フィールド名は 256 文字までの小文字の英字に制限されます。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。 Analytics には多くの予約キーワードがあり、フィールド名にこのキーワードを使用することはできません。詳細については、予約キーワードを参照してください。 |
式 | 演算フィールドの値を定義する有効な Analytics 式。 |
IF テスト 省略可能 |
各レコードを処理するために真である必要がある条件式。コマンドは、その条件を満たすレコードに対してのみ実行されます。 メモ IF パラメーターは、任意の範囲パラメーター(WHILE、FIRST、NEXT)が適用された後に、テーブルに残るレコードに対してのみ評価されます。 |
STATIC 省略可能 |
異なる値を検出するまで、テーブル内の対象フィールドの各行にはすべて同じ値が表示されます。 たとえば、次のソースデータに姓フィールドがある場合:
この場合、"Smith" は 6 つの連続する行に表示され、"Wong" は 7 番目の行に表示されます。 |
PIC 書式 省略可能 |
メモ 数値型のフィールドにのみ適用されます。 Analytics のビューおよびレポートに含まれる数値の表示形式。 書式は引用符で囲む必要があります。 |
AS 表示名 省略可能 |
ビューにおけるフィールドの表示名(代替列見出し)。表示名をフィールド名と同じにしたい場合は、AS を使用しないでください。 表示名の値は引用符で囲まれた文字列。列見出しを改行したい場合は、語句の間にセミコロン(;)を入れます。 |
WIDTH 文字数 省略可能 |
フィールドの表示幅(文字数)。 指定した値によって、Analytics のビューおよびレポートにおけるフィールドの表示幅が決まります。表示幅はデータを変更するものではありませんが、表示幅がフィールド長より短い場合にはデータが隠れる可能性があります。 このため、表示幅にはフィールド名や表示名の長さより短い値を指定しないでください。 WIDTH を省略した場合には、表示幅はフィールド長の文字数に設定されます。 メモ WIDTH で指定する文字数は、固定幅の文字数です。実際の文字の幅に関係なく、各文字には同じ空白量が割り当てられます。 Analytics のビューでは、固定幅の文字間隔と対応しないプロポーショナル フォントがデフォルトで使用されます。 WIDTH の値とビューの文字数との間に 1 対 1 の対応が必要な場合は、[オプション]ダイアログ ボックスの[プロポーショナル フォント]設定を Courier New などの固定幅フォントに変更することができます。 |
SUPPRESS 省略可能 |
数値型のフィールドにのみ適用されます。 Analytics レポートの数値演算フィールドの自動合計を抑制します。 一部の数値フィールドの合計は適切ではありません。たとえば、単価フィールドまたは値引率フィールドです。 |
フィールドノート 省略可能 |
テーブル レイアウトでフィールド定義に追加するフィールド ノートのテキスト。 フィールドノートは、その他すべての必須およびオプション パラメーターよりも後の、最後に指定する必要があります。テキストは、複数行にすることはできません。引用符は必要ありません。 |
値 IF 条件 |
条件付き演算フィールドのみ。
|
デフォルト値 |
条件付き演算フィールドのみ。 条件のどれも True と評価されない場合に演算フィールドで使用する値または式。 メモ すべての数値演算値の小数精度は、デフォルト値 の精度で統制されます。たとえば、既定値として 0.00 を指定すると、演算値はすべて小数点以下 2 桁まで計算され、必要に応じて四捨五入されます。精度を高めるには、 デフォルト値 の小数点以下桁数を増やします。 |
例
演算フィールドを定義する
Cost フィールドと Quantity フィールドの積を計算した Value フィールドを定義するには、次のように指定します。
DEFINE FIELD Value COMPUTED Cost * Quantity
オプションを使って演算フィールドを定義する
7 つのオプションを定義することで、Value_03 という演算フィールドを定義するとします。演算フィールドで処理されるレコードを制限する IF 条件を追加します。
DEFINE FIELD Value_03 COMPUTED IF Product_Class = "03" PIC "($9,999,999.99)" AS "Value Prod Class 3" 値はコストを数量で乗算した値です Cost * Quantity
条件付き演算フィールドを定義する
取引が発生した州に応じて異なる消費税を計算する条件演算フィールド Sales_tax を定義するとします。3 つの州以外で発生した取引の消費税はデフォルトの $0.00 です。
メモ
2 番目の行は空白にする必要があります。省略可能なパラメーターはありません。
DEFINE FIELD Sales_tax COMPUTED .0750 * Sale_amount IF State = "CA" .0400 * Sale_amount IF State = "NY" .0625 * Sale_amount IF State = "TX" 0.00
オプションを使って条件付き演算フィールドを定義する
取引が発生した州に応じて異なる消費税を計算する条件演算フィールド Sales_tax_100 を定義するとします。このフィールドでは、$100 以上の金額にかかる税のみを計算します。
3 つの州以外で発生した取引の消費税はデフォルトの $0.00 です。
メモ
省略可能なパラメーターを指定するときには、改行を残さないでください。
DEFINE FIELD Sales_tax_100 COMPUTED IF Sale_amount >= 100 .0750 * Sale_amount IF State = "CA" .0400 * Sale_amount IF State = "NY" .0625 * Sale_amount IF State = "TX" 0.00
備考
メモ
このコマンドの動作の詳細については、Analytics のヘルプを参照してください。
2 種類の演算フィールド
演算フィールドには 2 種類あります。
- 標準演算フィールド
標準演算フィールドはテーブルのすべてのレコードに対して同じ計算を実行します。
たとえば、Inventory テーブルでは、Cost フィールドの値を Quantity フィールドの値で乗算し、各レコードのコストで棚卸資産の価額を計算する演算フィールドを作成できます。
- 条件付き演算フィールド
条件付き演算フィールドは、指定する条件群に基づいて、テーブルのレコードに対して異なる計算を実行できます。レコードに対して実行された計算は、レコードが満たす条件によって異なります。
たとえば、Transactions テーブルで、取引が発生した州に基づいて調整されるレートを使用して、売上税を計算する条件付き演算フィールドを作成できます。IF State = "CA" や IF State = "NY" などの条件が各レコードをテストし、使用するレートを特定します。
条件付き演算フィールドの作成のためのガイドライン
メモ
条件付き演算フィールドを定義するときには、2 行目にオプションのパラメーターをどれも指定しない場合は、2 行目を空白のままにしておいてください。
条件付きの演算フィールドを作成するには、デフォルト値に加えて、少なくとも 1 つの条件値が必要です。条件付きの演算フィールドを定義するには、次のような複数行構文を使用する必要があります。
- オプションのパラメーターは 2 行目に配置します
- オプションのパラメーターがない場合、2 行目が空白になります
- 最初の条件は 3 行目に配置します
- 各追加条件ステートメントは別々の行に配置します
- デフォルト値は最後の行に配置します
フィールド定義の上書き
既存のフィールドと同じ名前を使用するフィールドを定義することによって、テーブル レイアウト内のフィールド定義を上書きすることができます。
SET SAFETY を ON にした場合は、既存のフィールドを上書きする前に確認ダイアログ ボックスが表示されます。スクリプトが中断されないようにするには、SET SAFETY を OFF に設定します。そのようにすると、既存のフィールドが、確認を求められることなく上書きされます。