定義公式對話方塊 (模型設計師)
使用即可建立包含公式的新欄位。如需有效公式的範例,請參閱<使用函數 (報表產生器 1.0)>。
選項
欄位
使用此索引標籤,即可找出報表模型內您想要包含在運算式中的欄位。按兩下此欄位,即可將其加入至運算式。函數
使用此索引標籤,即可選取您要在運算式裡使用的函數。按兩下此函數,即可將其加入至運算式。如需每個函數的描述,請參閱下列章節。欄位名稱
輸入您正在建立之運算式的名稱。公式
使用即可撰寫和編輯公式。搜尋
按一下以啟動 [搜尋] 對話方塊。彙總到此處
如果您按兩下 [公式] 方塊中所顯示的欄位名稱,則會顯示主要實體和欄位實體之間的關聯性。按一下即可將彙總套用至運算式中模型路徑上的任何位置。未套用篩選
如果您按兩下 [公式] 方塊中所顯示的欄位名稱,則會顯示主要實體和欄位實體之間的關聯性。您可以將篩選套用至運算式中模型路徑上的任何位置。按一下即可將篩選套用至運算式,然後按一下 [建立新篩選]。就會開啟 [篩選資料] 對話方塊。函數快速鍵
按一下即可將運算子加入至 [公式] 方塊中所顯示的公式。[定義公式] 對話方塊會提供您最常使用之函數的快速鍵;但是您也可以從 [函數] 索引標籤中選取這些運算子。下列是每個快速鍵的說明。+ 用來加總兩個值。
- 用來將一個值從另一個值中減去。
* 用來將兩個值相乘。
/ 用來將兩個值相除。
& 用來串連兩個值。
( 用來開始計算。
) 用來結束計算。
函數
下列資訊描述每個可在 [定義公式] 對話方塊之 [函數] 索引標籤上找到的函數。
彙總
若要摘要某個範圍的數值,請使用下列函數。
SUM
傳回運算式內所有值的總和。語法
SUM(aggregate)
SUM 只能用於包含數值的欄位。會忽略 Null 值。
AVERAGE
傳回運算式內所有非 Null 值的平均 (算術平均)。語法
AVERAGE(aggregate)
AVERAGE 只能用於包含數值的欄位。會忽略 Null 值。
MAX
傳回運算式中的最大值。語法
MAX(aggregate)
針對字元資料行,MAX 會以定序順序尋找最高的值。會忽略 Null 值。
MIN
傳回運算式中的最小值。語法
MIN(aggregate)
針對字元資料行,MIN 會以定序順序尋找最低的值。會忽略 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 的條件,就傳回某個值,如果您指定評估為 FALSE 的條件,就傳回另一個值。語法
IF(condition, value_if_true, value_if_false)
條件必須是可以評估為 TRUE 或 FALSE 的值或運算式。如果條件為 True,Value_if_true 就代表傳回的值。如果條件為 False,Value_if_false 就代表傳回的值。
IN
判斷項目是否為集合的成員。語法
IN(item, set)
Switch
評估運算式的清單,並傳回與清單中第一個為 True 之運算式相關聯的運算式值。Switch 可以有一或多個條件/值配對。語法
Switch(condition1, value1)
轉換
若要將值從一種資料類型轉換成另一種資料類型,請使用下列函數。
INT
將值轉換成整數。語法
INT(value)
DECIMAL
將值轉換成十進位。語法
DECIMAL(value)
FLOAT
將值轉換成浮點資料類型。語法
FLOAT(value)
TEXT
將數值轉換成文字。語法
TEXT(value)
日期和時間
若要顯示日期或時間,請使用下列函數。
DATE
傳回給定之年、月、日在上午 12:00:00 的日期時間值。語法
DATE(year, month, day)
DATEONLY
從日期時間值傳回年、月、日。語法
DATEONLY(datetime)
DATETIME
傳回給定之年、月、日、時、分和秒的日期時間。語法
DATETIME(year, month, day, hour, minute, second)
YEAR
傳回日期時間中的年份值。語法
YEAR(datetime)
QUARTER
傳回日期時間的日曆季 (1-4)。語法
QUARTER(datetime)
MONTH
傳回日期時間的月份。語法
MONTH(datetime)
DAY
從日期時間中擷取日期。語法
DAY(datetime)
HOUR
從日期時間中擷取幾點。語法
HOUR(datetime)
MINUTE
從日期時間中擷取幾分。語法
MINUTE(datetime)
SECOND
從日期時間中擷取幾秒。語法
SECOND(datetime)
DAYOFYEAR
傳回日期時間之一年中的第幾天。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
傳回將指定的時間間隔單位數加上原始日期時間,所產生的日期時間結果。語法
DATEADD(interval, units, datetime)
邏輯
若要測試條件的邏輯,請使用下列函數。
AND
如果所有引數都為 TRUE,則傳回 TRUE;如果有一或多個引數為 FALSE,則傳回 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,就會將數字捨入至小數點的左邊。
運算子
算術運算子
若要執行基本的數學運算,例如:加、減、乘、結合數字以及產生數值結果等,請使用下列運算子。
+ 加
用來加總兩個或以上的項目。語法
value + value
- 減
用來從另一個項目中扣除某項目。語法
value- value
* 乘
用來將項目相乘。語法
value* value
/ 除
用來將項目相除。除數不可以是 0。語法
value/divisor
- 否定
變更值的正負號。語法
-value
^ 乘冪
用來將值自乘為次方 (乘冪)。語法
value^power
比較運算子
若要比較兩個值,並傳回邏輯值 TRUE 或 FALSE,請使用下列運算子。
= 等於
用來判斷兩個值是否相等。當 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
<= 小於或等於
用來指出某個值小於或等於另一個值。當 value1 小於或等於 value2 時為 True。語法
value1 <= value2
文字
若要操作報表內的文字,請使用下列函數。
Concat (&)
將兩個字串結合為一。第二個字串將附加至第一個字串。語法
string & string
Find
字串之第一個執行個體的位置。語法
FIND(string, substring)
Left
傳回字串最左方的字元。如果指定小於零的值做為函數中的長度引數,則行為是未定義的。語法
LEFT(string, length)
Length
傳回字串中的字元數。語法
LENGTH(string)
Lower
將字串從大寫字元轉換成小寫字元。語法
LOWER(string)
LTrim
傳回已移除開頭空白之後的字串。語法
LTRIM(string)
Replace
傳回所有由另一個子字串取代之後的字串。語法
REPLACE(find, replace, string)
Right
傳回字串最右方的字元。如果指定小於零的值做為函數中的長度引數,則行為是未定義的。語法
RIGHT(string, length)
RTrim
傳回已移除尾端空白之後的字串。語法
RTRIM(string)
Text
將數值轉換成字串。語法
TEXT(value)
Substring
傳回字串中的子字串。如果指定小於零的值做為函數中的長度引數,則行為是未定義的。語法
SUBSTRING(string, start, length)
Upper
將字串從小寫字元轉換成大寫字元。語法
UPPER(string)
資訊
若要傳回有關使用者的全域資訊,請使用下列函數。
GetUserID
傳回使用者用來存取資料的識別碼。語法
GETUSERID()
GetUserCulture
傳回使用者的語言或地區設定。Syntax
GETUSERCULTURE()