共用方式為


定義公式對話方塊 (報表產生器 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()