モデル デザイナの関数
レポート モデル デザイナの関数を使用して、新しい属性を計算できます。たとえば、販売注文ごとの総売り上げを知りたいとします。この値は、販売金額に、注文に対して支払われる税金を加えた額になります。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 と同じです。 |
参照
概念
モデル デザイナのオブジェクトのプロパティ
モデル デザイナのクエリ プロパティ
モデル デザイナのデータ型
関数の使用 (レポート ビルダ)