[式の定義] ダイアログ ボックス [モデル デザイナ]

このダイアログ ボックスを使用すると、式を含む新しいフィールドを作成できます。有効な式の例については、「関数の使用 (レポート ビルダ)」を参照してください。

オプション

  • [フィールド]
    このタブを使用して、レポート モデル内で式に含めるフィールドを見つけます。フィールドをダブルクリックすると、フィールドが式に追加されます。
  • [関数]
    このタブを使用して、式で使用する関数を選択します。関数をダブルクリックすると、関数が式に追加されます。各関数の説明については、次の項を参照してください。
  • [フィールド名]
    作成する式の名前を入力します。
  • [式]
    式を記述および編集します。
  • [検索]
    クリックすると、[検索] ダイアログ ボックスが開きます。
  • [集計先]
    [式] ボックスのフィールド名をダブルクリックすると、プライマリ エンティティとフィールドのエンティティのリレーションシップが表示されます。クリックすると、モデル パスの任意の場所で集計が式に適用されます。
  • [フィルタが適用されていません]
    [式] ボックスのフィールド名をダブルクリックすると、プライマリ エンティティとフィールドのエンティティのリレーションシップが表示されます。モデル パスの任意の場所でフィルタを式に適用できます。クリックしてフィルタが式に適用されたら、[新しいフィルタの作成] をクリックします。[データのフィルタ選択] ダイアログ ボックスが表示されます。
  • 式のショートカット
    クリックすると、[式] ボックスに表示されている式に演算子が追加されます。[式の定義] ダイアログ ボックスには、よく使用される関数のショートカットが用意されていますが、これらの演算子を [関数] タブから選択することもできます。各ショートカットの説明を次に示します。

    + は、2 つの値を加算するために使用します。

    - は、1 つの値を別の値から減算するために使用します。

    * は、2 つの値を乗算するために使用します。

    / は、2 つの値を除算するために使用します。

    & は、2 つの値を連結するために使用します。

    ( は、計算を開始するために使用します。

    ) は、計算を終了するために使用します。

[関数]

[式の定義] ダイアログ ボックスの [関数] タブの各関数の説明を次に示します。

集計

数値の範囲を合計する場合は、次の関数を使用します。

  • [SUM]
    式内のすべての値の合計が返されます。

    構文

    SUM(aggregate)

    SUM は、数値だけを含むフィールドと共に使用できます。NULL 値は無視されます。

  • [AVERAGE]
    式内の NULL 以外のすべての値の平均値 (数値計算による平均値) を返します。

    構文

    AVERAGE(aggregate)

    AVERAGE は、数値だけを含むフィールドと共に使用できます。NULL 値は無視されます。

  • [MAX]
    式内の最大値を返します。

    構文

    MAX(aggregate)

    character 型列の場合は、決められた順序での最高の値が返されます。NULL 値は無視されます。

  • [MIN]
    式内の最小値を返します。

    構文

    MIN(aggregate)

    character 型列の場合は、決められた順序での最小の値が返されます。NULL 値は無視されます。

  • [COUNT]
    グループ内の NULL 以外のアイテムの数を返します。

    構文

    COUNT(aggregate)

    COUNT は常に Int 型の値を返します。

  • [COUNTDISTINCT]
    グループ内のアイテムで重複していない NULL 以外のインスタンスの数を返します。

    構文

    COUNTDISTINCT(aggregate)

  • [STDev]
    アイテムの NULL 以外の値の標準偏差を返します。

    構文

    STDEV(aggregate)

  • [STDevP]
    アイテムの NULL 以外の値の母集団に対する標準偏差を返します。

    構文

    STDEVP(aggregate)

  • [VAR]
    アイテムの NULL 以外の値の分散を返します。

    構文

    VAR(aggregate)

  • [VARP]
    アイテムの NULL 以外の値の母集団に対する分散を返します。

    構文

    VARP(aggregate)

条件

条件をテストするには、次の関数を使用します。

  • [IF]
    TRUE に評価される条件を指定すると 1 つの値が返され、FALSE に評価される条件を指定すると別の値が返されます。

    構文

    IF(condition, value_if_true, value_if_false)

    条件は、TRUE または FALSE に評価される値または式にする必要があります。value_if_true は、条件が TRUE である場合に返される値を表しています。value_if_false は、条件が FALSE である場合に返される値を表しています。

  • [IN]
    アイテムがセットのメンバであるかどうかを決定します。

    構文

    IN(item, set)

  • [Switch]
    式の一覧を評価して、一覧内で最初に TRUE となる式に関連付けられた式の値を返します。Switch は、1 つ以上の条件と値のペアを持つことができます。

    構文

    Switch(condition1, value1)

変換

値を 1 つのデータ型から別のデータ型に変換する場合は、次の関数を使用します。

  • [INT]
    値を整数に変換します。

    構文

    INT(value)

  • [DECIMAL]
    値を十進数値に変換します。

    構文

    DECIMAL(value)

  • [FLOAT]
    値を float データ型に変換します。

    構文

    FLOAT(value)

  • [TEXT]
    数値をテキストに変換します。

    構文

    TEXT(value)

日付と時刻

日付または時刻を表示する場合は、次の関数を使用します。

  • [DATE]
    午前 0 時の年、月、日を表す datetime 値を返します。

    構文

    DATE(year, month, day)

  • [DATEONLY]
    datetime 値から年、月、日を返します。

    構文

    DATEONLY(datetime)

  • [DATETIME]
    年、月、日、時、分、秒を表す detatime を返します。

    構文

    DATETIME(year, month, day, hour, minute, second)

  • [YEAR]
    datetime から年を返します。

    構文

    YEAR(datetime)

  • [QUARTER]
    datetime の四半期 (1 ~ 4) を返します。

    構文

    QUARTER(datetime)

  • [MONTH]
    datetime から月を返します。

    構文

    MONTH(datetime)

  • [DAY]
    datetime から日を返します。

    構文

    DAY(datetime)

  • [HOUR]
    datetime から時を返します。

    構文

    HOUR(datetime)

  • [MINUTE]
    datetime から分を返します。

    構文

    MINUTE(datetime)

  • [SECOND]
    datetime から秒を返します。

    構文

    SECOND(datetime)

  • [DAYOFYEAR]
    datetime の年の通算日を返します。うるう年が想定されているので、1 月 1 日が 1、12 月 31 日が 366 となります。

    構文

    DAYOFYEAR(datetime)

  • [WEEK]
    年の通算の週数を表す数値を返します。

    構文

    WEEK(datetime)

  • [DAYOFWEEK]
    月曜日始まりで曜日を返します。月曜日が 1、日曜日が 7 となります。

    構文

    DAYOFWEEK(datetime)

  • [NOW]
    現在の日付と時刻を返します。

    構文

    NOW( )

  • [TODAY]
    現在の日付を返します。

    構文

    TODAY( )

  • [DATEDIFF]
    開始日と終了日の間隔を返します。

    構文

    DATEDIFF(interval, datetime, datetime)

  • [DATEADD]
    指定した時間間隔を元の datetime に加えて得られた datetime を返します。

    構文

    DATEADD(interval, units, datetime)

論理演算子

条件の論理をテストするには、次の関数を使用します。

  • [AND]
    すべての引数が TRUE の場合は TRUE を返し、FALSE の引数が 1 つ以上あれば FALSE を返します。

    構文

    AND(logical, logical)

    引数が TRUE や FALSE などの論理値に評価されるか、引数が論理値を含む配列または参照である必要があります。配列または参照の引数にテキストまたは空のセルが含まれている場合、その値は無視されます。

  • [OR]
    TRUE に評価される引数がある場合は TRUE を返します。すべての引数が FALSE である場合は FALSE を返します。

    構文

    OR(logical, logical)

    引数が TRUE や FALSE などの論理値に評価されるか、引数が論理値を含む配列または参照である必要があります。配列または参照にテキストまたは空のセルが含まれている場合、その値は無視されます。

  • [NOT]
    引数の値を反転します。句が特定の値と等価にならないようにするには、NOT を使用します。

    構文

    NOT(logical)

    値が FALSE の場合、NOT は TRUE を返し、値が TRUE の場合、NOT は FALSE を返します。

数学

数値を操作する場合は、次の関数を使用します。

  • [MOD]
    数値を除数で除算した後の剰余を返します。除数には 0 を使用できません。

    構文

    MOD(number, divisor)

  • [TRUNC]
    数値を指定した桁数で切り捨てます。数値が正の場合は、小数点以下で切り捨てられます。数値が負の場合は、整数部分で切り捨てられます。

    構文

    TRUNC(number, digits)

  • [ROUND]
    数値を指定した桁数に丸めます。

    構文

    ROUND(number, digits)

    桁数が 0 (ゼロ) より多い場合、数値は指定した小数点以下の桁数に丸められます。桁数が 0 の場合、数値は最も近い整数に丸められます。数値が 0 より小さい場合、数値は整数部分に丸められます。

演算子

算術演算子

加算、除算、乗算などの基本的な数学的演算を行い、数値を組み合わせて、数値で表される結果を生成する場合は、次の演算子を使用します。

  • + (加算)
    2 つ以上のアイテムを加算する場合に使用します。

    構文

    value + value

  • - (減算)
    1 つのアイテムを別のアイテムから減算する場合に使用します。

    構文

    value- value

  • * (乗算)
    アイテムを乗算する場合に使用します。

    構文

    value* value

  • / (除算)
    アイテムを除算する場合に使用します。除数には 0 を使用できません。

    構文

    value/divisor

  • - (否定)
    値の符号を変更します。

    構文

    -value

  • ^ (累乗)
    値をべき乗 (累乗) する場合に使用します。

    構文

    value^power

比較演算子

2 つの値を比較して TRUE または FALSE の論理値を返す場合は、次の演算子を使用します。

  • = (等しい)
    2 つの値が等しいことを示すために使用します。value1 と value2 が等しい場合、True になります。

    構文

    value1= value2

  • <> (等しくない)
    2 つの値が等しくないことを示すために使用します。value1 が value2 と等しくない場合、True になります。

    構文

    value1 <> value2

  • > (より大きい)
    一方の値がもう一方の値よりも大きいことを示すために使用します。value1 が value2 よりも大きな場合、True になります。

    構文

    value1 > value2

  • >= (以上)
    一方の値がもう一方の値以上であることを示すために使用します。value1 が value2 以上の場合、True になります。

    構文

    value1 >= value2

  • < (より小さい)
    一方の値がもう一方の値よりも小さいことを示すために使用します。value1 が value2 よりも小さい場合、True になります。

    構文

    value1 < value2

  • <= (以下)
    一方の値がもう一方の値以下であることを示すために使用します。value1 が value2 以下の場合、True になります。

    構文

    value1 <= value2

テキスト

レポート内のテキストを操作する場合は、次の関数を使用します。

  • [Concat (&)]
    2 つの文字列を 1 つの文字列に結合します。2 番目の文字列は、最初の文字列に追加されます。

    構文

    string & string

  • [Find]
    文字列の最初のインスタンスの位置です。

    構文

    FIND(string, substring)

  • [Left]
    文字列の左端の文字を返します。関数の length 引数にゼロ未満の値を指定した場合の動作は不定です。

    構文

    LEFT(string, length)

  • [Length]
    文字列内の文字数を返します。

    構文

    LENGTH(string)

  • [Lower]
    文字列を大文字から小文字に変換します。

    構文

    LOWER(string)

  • [LTrim]
    文字列の先頭の空白を削除して返します。

    構文

    LTRIM(string)

  • [Replace]
    別のサブストリングによって置換されるサブストリングの、すべてのインスタンスを含む文字列を返します。

    構文

    REPLACE(find, replace, string)

  • [Right]
    文字列の右端の文字を返します。関数の length 引数にゼロ未満の値を指定した場合の動作は不定です。

    構文

    RIGHT(string, length)

  • [RTrim]
    文字列の末尾のスペースを削除して返します。

    構文

    RTRIM(string)

  • テキスト
    数値を文字列に変換します。

    構文

    TEXT(value)

  • [Substring]
    文字列内からサブストリングを返します。関数の length 引数にゼロ未満の値を指定した場合の動作は不定です。

    構文

    SUBSTRING(string, start, length)

  • [Upper]
    文字列を小文字から大文字に変換します。

    構文

    UPPER(string)

情報

ユーザーに関するグローバル情報を返す場合は、次の関数を使用します。

  • [GetUserID]
    ユーザーがデータへのアクセスに使用した ID を返します。

    構文

    GETUSERID()

  • [GetUserCulture]
    ユーザーの言語またはロケールを返します。

    Syntax

    GETUSERCULTURE()

参照

概念

モデル デザイナの F1 ヘルプ

その他の技術情報

モデル デザイナの操作方法に関するトピック
モデル デザイナを使用した作業
ロール、ソース フィールド、および式の処理

ヘルプおよび情報

SQL Server 2005 の参考資料の入手