共用方式為


定義公式對話方塊 (模型設計師)

使用即可建立包含公式的新欄位。如需有效公式的範例,請參閱<使用函數 (報表產生器 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()