定義公式對話方塊 (報表產生器 3.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)
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,就會將數字四捨五入至小數點左邊。
運算子
算術運算子
若要執行基本數學運算 (例如加法、減法或乘法)、結合數字,以及產生數值結果,請使用下列運算子。[函數快速鍵] 包含最常用的算術運算子。
+ 加
用來加總兩個或以上的項目。語法
值 + 值
- 減
用來從另一個項目中扣除某項目。語法
值 - 值
* 乘
用來將項目相乘。語法
值 * 值
/ 除
用來將項目相除。除數不能為 0。語法
值/除數
- 否定
變更值的正負號。語法
-值
^ 乘冪
用於將值自乘為乘冪 (乘冪)。語法
值^乘冪
= 等於
用於使兩個值相等。當 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()