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"を表示する
  • 次の 5 レコードが空白の行を表示する
  • 7 番目のレコードが値 "Wong" を表示する

この場合、"Smith" は 6 つの連続する行に表示され、"Wong" は 7 番目の行に表示されます。

PIC 書式

省略可能

メモ

数値型のフィールドにのみ適用されます。

Analytics のビューおよびレポートに含まれる数値の表示形式。

書式は引用符で囲む必要があります。

AS 表示名

省略可能

ビューにおけるフィールドの表示名(代替列見出し)。表示名をフィールド名と同じにしたい場合は、AS を使用しないでください。

表示名の値は引用符で囲まれた文字列。列見出しを改行したい場合は、語句の間にセミコロン(;)を入れます。

WIDTH 文字数

省略可能

フィールドの表示幅(文字数)。

指定した値によって、Analytics のビューおよびレポートにおけるフィールドの表示幅が決まります。表示幅はデータを変更するものではありませんが、表示幅がフィールド長より短い場合にはデータが隠れる可能性があります。

このため、表示幅にはフィールド名表示名の長さより短い値を指定しないでください。

WIDTH を省略した場合には、表示幅はフィールド長の文字数に設定されます。

メモ

WIDTH で指定する文字数は、固定幅の文字数です。実際の文字の幅に関係なく、各文字には同じ空白量が割り当てられます。

Analytics のビューでは、固定幅の文字間隔と対応しないプロポーショナル フォントがデフォルトで使用されます。

WIDTH の値とビューの文字数との間に 1 対 1 の対応が必要な場合は、[オプション]ダイアログ ボックスの[プロポーショナル フォント]設定を Courier New などの固定幅フォントに変更することができます。

SUPPRESS

省略可能

数値型のフィールドにのみ適用されます。

Analytics レポートの数値演算フィールドの自動合計を抑制します。

一部の数値フィールドの合計は適切ではありません。たとえば、単価フィールドまたは値引率フィールドです。

フィールドノート

省略可能

テーブル レイアウトでフィールド定義に追加するフィールド ノートのテキスト。

フィールドノートは、その他すべての必須およびオプション パラメーターよりも後の、最後に指定する必要があります。テキストは、複数行にすることはできません。引用符は必要ありません。

IF 条件

条件付き演算フィールドのみ。

  • 条件が True と評価される場合に使用する演算フィールド値または式。
  • 条件評価される論理テスト。
デフォルト値

条件付き演算フィールドのみ。

条件のどれも 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 に設定します。そのようにすると、既存のフィールドが、確認を求められることなく上書きされます。

ACL のスクリプト作成ガイド 14.1