次の方法で共有


モデル デザイナの関数

レポート モデル デザイナの関数を使用して、新しい属性を計算できます。たとえば、販売注文ごとの総売り上げを知りたいとします。この値は、販売金額に、注文に対して支払われる税金を加えた額になります。Add 関数を使用すると、各販売総額を、各注文に対して支払われた税金に加えることができます。次の表は、使用できる関数とその要件および動作を示したものです。

スカラ関数

スカラ関数を使用すると、単一の引数に対する計算を実行して、フィールドに対する新しい単一の値を返すことができます。

関数名 引数 データ型 カーディナリティ 説明

Add

Item1

Numeric

1

加算する 1 番目のアイテムです。

Item2

Numeric

1

加算する 2 番目のアイテムです。

Return

型は、どちらかの値が Float の場合は Float、どちらかの値が Decimal の場合は Decimal、それ以外の場合は Integer です。

Subtract

Item1

Numeric

1

減算されるアイテムです。

Item2

Numeric

1

減算するアイテムです。

Return

型は、どちらかの値が Float の場合は Float、どちらかの値が Decimal の場合は Decimal、それ以外の場合は Integer です。

Multiply

Item1

Numeric

1

乗算する 1 番目のアイテムです。

Item2

Numeric

1

乗算する 2 番目のアイテムです。

Return

型は、どちらかの値が Float の場合は Float、どちらかの値が Decimal の場合は Decimal、それ以外の場合は Integer です。

Divide

Item1

Numeric

1

除算されるアイテムです。

Item2

Numeric

1

除算するアイテムです。

Return

型は、どちらかの値が Float の場合は Float、それ以外の場合は Decimal です。

Power

Base

Numeric

1

指数で累乗する基数です。

Exponent

Numeric

1

指数です。

Return

型は、どちらかの値が Float の場合は Float、どちらかの値が Decimal の場合は Decimal、それ以外の場合は Integer です。

Negate

Item

Numeric

1

否定するアイテムです。

Return

型は Item と同じです。

Mod

Item1

Integer

1

除算されるアイテムです。

Item2

Integer

1

除算するアイテムです。

Return

Integer

除算の剰余です。

Equals

Item1

Boolean、DateTime、Integer、Decimal、Float、String、または EntityKey

1

比較する 1 番目のアイテムです。

Item2

1

比較する 2 番目のアイテムです。Item1 と Item2 は、同じデータ型である必要があります。

Return

Boolean

アイテムが同じかどうかを示します。

NotEquals

Item1

Boolean、DateTime、Integer、Decimal、Float、String、または EntityKey

1

比較する 1 番目のアイテムです。

Item2

1

比較する 2 番目のアイテムです。Item1 と Item2 は、同じデータ型である必要があります。

Return

Boolean

アイテムが異なるかどうかを示します。

GreaterThan

Item1

DateTime、Integer、Decimal、Float、または String

1

比較する 1 番目のアイテムです。

Item2

1

比較する 2 番目のアイテムです。Item1 と Item2 は、同じデータ型である必要があります。

Return

Boolean

1 番目のアイテムが 2 番目のアイテムより大きいかどうかを示します。

GreaterThanOrEquals

Item1

DateTime、Integer、Decimal、Float、または String

1

比較する 1 番目のアイテムです。

Item2

1

比較する 2 番目のアイテムです。Item1 と Item2 は、同じデータ型である必要があります。

Return

Boolean

1 番目のアイテムが 2 番目のアイテム以上かどうかを示します。

LessThan

Item1

DateTime、Integer、Decimal、Float、または String

1

比較する 1 番目のアイテムです。

Item2

1

比較する 2 番目のアイテムです。Item1 と Item2 は、同じデータ型である必要があります。

Return

Boolean

1 番目のアイテムが 2 番目のアイテムより小さいかどうかを示します。

LessThanOrEquals

Item1

DateTime、Integer、Decimal、Float、または String

1

比較する 1 番目のアイテムです。

Item2

1

比較する 2 番目のアイテムです。Item1 と Item2 は、同じデータ型である必要があります。

Return

Boolean

1 番目のアイテムが 2 番目のアイテム以下かどうかを示します。

And

Item1

Boolean

1

1 番目の条件です。

Item2

Boolean

1

2 番目の条件です。Item1 が false の場合、Item2 は評価されません。

Return

Boolean

Item1 と Item2 がどちらも true の場合、戻り値は true です。

Or

Item1

Boolean

1

1 番目の条件です。

Item2

Boolean

1

2 番目の条件です。Item1 が true の場合、Item2 は評価されません。

Return

Boolean

Item1 と Item2 のどちらかが true の場合、戻り値は true です。

Not

Item

Boolean

1

否定する条件です。

Return

Boolean

Item が false の場合、戻り値は true です。

Truncate

Item

Decimal または Float

1

切り捨てるアイテムです。

Digits

Integer

1

アイテムを切り捨てて残す小数点以下桁数です。たとえば、3 と指定すると、小数点の右側の 3 番目の桁より後を切り捨てます。

Return

戻り値の型は、切り捨てられるアイテムと同じです。

Round

Item

Decimal または Float

1

丸めるアイテムです。

Digits

Integer

1

アイテムを丸める小数点以下桁数です。たとえば、3 と指定すると、小数点の右側の 3 番目の桁にアイテムを丸めます。

Return

戻り値の型は、丸められるアイテムと同じです。

Integer

Item

Numeric または String

1

キャストするアイテムです。レポート ビルダの [関数] タブでは、Integer は INT と表示されます。

Return

Integer

アイテムを Integer としてキャストします。アイテムが数値の場合は切り捨てられます。数値文字列をキャストするためには、固定されたロケールが使用されることに注意してください。ピリオドが小数点です。位取りのコンマは使用できません。

Decimal

Item

Numeric または String

1

キャストするアイテムです。

Return

Decimal

アイテムを Decimal としてキャストします。

Float

Item

Numeric または String

1

キャストするアイテムです。

Return

Float

アイテムを Float としてキャストします。

String

Item

Numeric

1

キャストするアイテムです。レポート ビルダの [関数] タブでは、String は TEXT と表示されます。

Return

String

アイテムを String としてキャストします。

Length

String

String

1

長さを判別するために使用される文字列です。

Return

Integer

文字列の長さです。文字列内の文字数で指定されます。

Find

String

String

1

含まれる文字列を検索する文字列です。

Substring

String

1

検索する部分文字列です。

Return

Integer

文字列内における部分文字列の最初のインスタンスの位置です。部分文字列が見つからない場合は、0 が返されます。

Substring

String

String

1

部分文字列を抽出する文字列です。

Start

Integer

1

文字列内の開始位置です (先頭が 1)。

Length

Integer

1

文字数です。

Return

String

文字列から抽出された、Start から Start+Length までの文字を含む部分文字列です。

Left

String

String

1

左端の文字を取得する文字列です。

Length

Integer

1

文字数です。

Return

String

1 から Length までの文字を含む文字列の部分文字列です。

Right

String

String

1

右端の文字を取得する文字列です。

Length

Integer

1

文字数です。

Return

String

Length(String)-Length+1 から Length(String) までの文字を含む文字列の部分文字列です。

Concat

String1

String

1

連結する 1 番目の文字列です。

String2

String

1

連結する 2 番目の文字列です。

Return

String

1 番目の文字列の後に 2 番目の文字列を連結した文字列です。

Lower

String

String

1

小文字に変換する文字列です。

Return

String

すべての大文字が小文字に変換された文字列です。

Upper

String

String

1

大文字に変換する文字列です。

Return

String

すべての小文字が大文字に変換された文字列です。

LTrim

String

String

1

先頭のスペースを取り除く文字列です。

Return

String

先頭のすべてのスペースが取り除かれた文字列です。

RTrim

String

String

1

後続のスペースを取り除く文字列です。

Return

String

後続のスペースが取り除かれた文字列です。

Replace

String

String

1

部分文字列のすべてのインスタンスを別の文字列に置き換える文字列です。

Find

String

1

検索する部分文字列です。

Replace

String

1

Find 文字列を置き換える部分文字列です。

Return

String

Find のすべてのインスタンスが Replace に置き換えられた文字列です。

Date

Year

Integer

1

日付の年の部分です。

Month

Integer

1

日付の月 (1 ~ 12) の部分です。

Day

Integer

1

日付の日 (1 ~ 31) の部分です。指定されている年と月に対して有効な日である必要があります。

Return

DateTime

指定された年、月、日の 00:00:00 の日時です。

DateTime

Year

Integer

1

日付の年の部分です。

Month

Integer

1

日付の月 (1 ~ 12) の部分です。

Day

Integer

1

日付の日 (1 ~ 31) の部分です。指定されている年と月に対して有効な日である必要があります。

Hour

Integer

1

時刻の時 (0 ~ 23) の部分です。

Minute

Integer

1

時刻の分 (0 ~ 59) の部分です。

Second

Decimal

1

時刻の秒 (0 ~ 60) の部分です。

Return

DateTime

指定した年、月、日、時、分、秒の日時です。

Year

DateTime

DateTime

1

年を抽出する日付です。

Return

Integer

DateTime の年の部分です。

Quarter

DateTime

DateTime

1

四半期を抽出する日付です。

Return

Integer

DateTime の四半期 (1 ~ 4) です。

Month

DateTime

DateTime

1

月を抽出する日付です。

Return

Integer

DateTime の月 (1 ~ 12) の部分です。

Day

DateTime

DateTime

1

日を抽出する日付です。

Return

Integer

DateTime の日 (1 ~ 31) の部分です。

Hour

DateTime

DateTime

1

時を抽出する日時です。

Return

Integer

DateTime の時 (0 ~ 23) の部分です。

Minute

DateTime

DateTime

1

分を抽出する日時です。

Return

Integer

DateTime の分 (0 ~ 59) の部分です。

Second

DateTime

DateTime

1

秒を抽出する日時です。

Return

Integer

DateTime の秒 (0 ~ 60) の部分です。

DayofYear

DateTime

DateTime

1

1 年の何日目かを抽出する日付です。

Return

Integer

DateTime がその年の何日目 (1 ~ 366) かを示す値です。

Week

DateTime

DateTime

1

週を抽出する日付です。

Return

Integer

DateTime の週 (1 ~ 53) です。週の最初の曜日は、セマンティック モデルのカルチャに関連付けられた、週の既定の最初の曜日によって決まります。

DayofWeek

DateTime

DateTime

1

何曜日かを抽出する日付です。

Return

Integer

DateTime が何曜日 (1 ~ 7) かを示す値です。月曜日が 1 で、日曜日が 7 です。

Date

DateTime

DateTime

1

時刻を除去する日時です。レポート ビルダの [関数] タブでは、この Date 関数は DATEONLY と表示されます。

Return

Integer

時刻が (00:00:00) にクリアされた日時です。

Now

Return

DateTime

現在の日付と時刻です。Now は静的関数です。

Today

Return

DateTime

時刻が (00:00:00) にクリアされた現在の日時です。Today は静的関数です。

DateDiff

Interval

String

1

日時の差を示すために使用する単位です。Year、Quarter、Month、Day、Hour、Minute、Second、Week のいずれかである必要があります。リテラルで指定する必要があります。

Start

DateTime

1

開始日時です。

End

DateTime

1

終了日時です。

Return

Integer

Start 日時と End 日時の間の差を、Interval で指定されている単位で表した値です。開始日時が終了日時より後の場合、結果は負になります。

DateAdd

Interval

String

1

追加する日付を指定するために使用する単位です。Year、Quarter、Month、Day、Hour、Minute、Second、Week のいずれかである必要があります。リテラルで指定する必要があります。

Number

Integer

1

DateTime に追加する間隔の単位数です。

DateTime

DateTime

1

追加する日時です。

Return

DateTime

基準となる日時に、指定されている間隔単位数を追加した結果の日時です。

集計関数

集計関数を使用すると、値のセットまたは単一の値に対して計算を実行し、式に対する単一の値を返すことができます。

関数名 引数 データ型 カーディナリティ 説明

Sum

Items

Numeric

N

合計するアイテムです。

Return

1

すべてのアイテムを合計した値です。戻り値の型は、Items のデータ型と同じです。

Avg

Items

Numeric

N

平均するアイテムです。レポート ビルダの [関数] タブでは、Avg は AVERAGE と表示されます。

Return

1

Items の NULL 以外の値の平均です。データ型は、Items が Decimal または Integer の場合は Decimal、それ以外の場合は Float です。

Max

Items

DateTime、Integer、Decimal、Float、または String

N

最大を判別するために並べ替えるアイテムです。

Return

1

Items の NULL 以外の値の最大値です。戻り値の型は、Items のデータ型と同じです。

Min

Items

DateTime、Integer、Decimal、Float、または String

N

最小を判別するために並べ替えるアイテムです。

Return

1

Items の NULL 以外の値の最小値です。戻り値の型は、Items のデータ型と同じです。

Count

Items

任意

N

カウントするアイテムです。

Return

Integer

1

Items の NULL 以外の値のカウントです。

CountDistinct

Items

任意

N

カウントするアイテムです。Items のデータ型として EntityKey は使用できません。

Return

Integer

1

Items の NULL 以外の異なる値のカウントです。

StDev

Items

Numeric

N

標準偏差を判別するために使用するアイテムです。

Return

Float

1

Items の NULL 以外の値の標準偏差です。

StDevP

Items

Numeric

N

母集団標準偏差を判別するために使用するアイテムです。

Return

Float

1

Items の NULL 以外の値の母集団標準偏差です。

Var

Items

Numeric

N

分散を判別するために使用するアイテムです。

Return

Float

1

Items の NULL 以外の値の分散です。

VarP

Items

Numeric

N

母集団に対する分散を判別するために使用するアイテムです。

Return

Float

1

Items の NULL 以外の値の母集団に対する分散です。

情報関数

情報関数を使用すると、ユーザーに関する基本情報を取得できます。

関数名 引数 データ型 カーディナリティ 説明

GetUserID

Return

String

1

ユーザーのユーザー ID です。GetUserID は静的関数です。

GetUserCulture

Return

Language

1

ユーザーの言語またはロケールです。GetUserCulture は静的関数です。

その他の関数

前の関数に加えて、セマンティック モデル定義言語では次の関数を使用できます。

関数名 引数 データ型 カーディナリティ 説明

Filter

Filter Items

任意

N

フィルタ選択する値です。アイテムをフィルタ選択するには、[フィルタ] ダイアログ ボックスを使用します。

Filter Condition

Boolean

1

対応するインスタンスを含めるかどうかを示します。

Return

N

戻り値の型は、Filter Items と同じです。

In

Item

Boolean、DateTime、Integer、Decimal、Float、String、または EntityKey

1

Set のメンバシップを確認するアイテムです。

Set

N

パスを含まないリテラル式である必要があります。Item と Set は同じデータ型である必要があります。

Return

Boolean

1

アイテムが Set に含まれるかどうかを示します。

If

Condition

Boolean

1

テストする条件です。

TrueCase

任意

1

条件が true の場合に戻す値です。条件が false の場合には、TrueCase は評価されません。EntityKey データ型は使用できません。

FalseCase

任意

1

条件が false の場合に戻す値です。FalseCase は、TrueCase と同じ型である必要があります。条件が true の場合には、FalseCase は評価されません。

Return

1

型は TrueCase と同じである必要があります。

Switch

Condition1

Boolean

1

テストする条件です。Switch には、0 個以上の Condition/Value ペアを指定できます。

Value1

任意

1

Condition1 が true の場合に返す値です。

Condition/N

Boolean

1

テストする条件です。それより前のいずれかの条件が true の場合には評価されません。

Value/N

Boolean

1

Condition/N が true の場合に戻す値です。Value1 と同じデータ型である必要があります。Condition/N が評価されない場合、または Condition/N が false の場合には評価されません。

Return

Boolean

1

型は Value1 と同じです。すべての条件が false の場合には Null が返されます。

Evaluate

Expression

任意

N

評価する式です。この関数は、式を評価するエンティティ コンテキストを制御するために使用します。たとえば、次の式は、顧客が注文した各個別商品の価格の平均を計算します。

Avg([customer->order->product]Price)

次の式は、顧客が行った各注文の価格 (商品エンティティから取得される) の平均を計算します。

Avg([customer->order]Evaluate([order->product]Price))

パスの複数のポイントで評価を行って集計の個別性を制御することができ、複数の Evaluate を独立して使用できる場合があります。各商品が複数のメーカーで製造されている可能性があるモデルで、複数の Evaluate を独立して使用する例を次に示します。

Average([customer->order]Evaluate([order->product]Evaluate([product->manufacturer->city]population)))

Return

N

型は Expression と同じです。

Aggregate

Expression

任意

N

評価する集計式です。この関数は、集計を評価するエンティティ コンテキストを制御するために使用します。たとえば、Order エンティティで定義されている TotalSales 属性について考えます。注文のコンテキスト内での総売上を示すための式は単に TotalSales です。顧客のコンテキスト内での総売上を計算するための式は、次のようになります。

Aggregate([customer->order]TotalSales)

式の引数には、固定されていない式、または 1 つ以上の入れ子になったパススルー式 (任意のデータ型を受け取る必要があります) を含んでいなければなりません。後者の場合、最も内側のパススルー引数は、固定されていない ExpressionNode を持ちます。次に例を示します。

Aggregate([customer->order]Filter([order->product]Sum(UnitPrice),=(Shipped, "True"))

Return

1

型は Expression と同じです。

参照

概念

モデル デザイナのオブジェクトのプロパティ
モデル デザイナのクエリ プロパティ
モデル デザイナのデータ型
関数の使用 (レポート ビルダ)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手