在報表模型查詢中使用公式 (報表產生器 3.0 和 SSRS)
公式是針對使用報表模型做為資料來源之報表中的值來執行的計算。當您定義報表模型資料來源的查詢時,可以在報表模型查詢設計工具的定義公式對話方塊 (報表產生器 3.0)中定義公式。公式可以包含函數、運算子、常數和對欄位或實體的參考。公式可讓您結合、彙總、篩選以及評估數值和文字資料。您可以建立公式,並將它們另存為新的欄位,或者,您可以修改現有欄位的公式。
公式不是 RDL 運算式,開頭不得為等號 (=)。如需有關 RDL 運算式的詳細資訊,請參閱<運算式 (報表產生器 3.0 和 SSRS)>。
公式如下列所示:
Sum Line Total
6+12
SUM(IF(Finished Goods Flag, "Finished", "Unfinished"))
定義公式之後,您可以使用查詢設計工具查看結果。如需有關查詢設計工具的詳細資訊,請參閱<報表模型查詢設計工具使用者介面 (報表產生器 3.0)>。
[!附註]
您可以在 Business Intelligence Development Studio 中的報表產生器 3.0 及報表設計師中建立及修改報表定義 (.rdl)。每一個撰寫環境都提供了不同的方式讓您建立、開啟,以及儲存報表和相關的項目。如需詳細資訊,請參閱在報表設計師及報表產生器 3.0 (SSRS) 中設計報表,位於 microsoft.com 網站上。
參考
參考是欄位名稱。可以是實體中的現有欄位名稱,也可以是已建立並加入至 [欄位] 清單的導出欄位名稱。參考會告訴「報表產生器」去何處尋找想要在公式中使用的值或資料。您可以參考一個公式內之內容實體和其他實體中的欄位,或使用來自多個公式中之一個欄位的值。
當您使用參考時,報表處理器會針對欄位中的每個值執行公式。例如,假設欄位包含過去五年的年度銷售總額。此欄位會包含五個值,每個值代表給定年度的銷售總額。如果公式包含對此欄位的參考,則公式會使用每個個別值來計算新的值。
運算子
運算子會指定要在公式的值上執行之計算的類型。計算運算子有三種不同的類型:算術、比較和文字。系統會使用符號 (如加號 (+)),來表示運算子。
**算術運算子:**算術運算子會執行基本數學運算 (例如加法、減法或乘法)、結合數字,並產生數值結果。
**比較運算子:**您可以使用比較運算子比較兩個值。當使用這些運算子比較兩個值時,結果是邏輯值,TRUE 或 FALSE。
**文字串連運算子:**使用連字號 (&) 來聯結或串連一個或多個文字字串,以產生單一文字片段。
常數
常數是一個不需要計算的值,因此也不會變更。報表產生器使用下列常數:True、False 和 Empty。這些常數用於評估布林欄位。例如,假設您有一個名為 IsDiscontinued 的欄位。此欄位的有效值僅為 True、False 或空白 (" ")。
函數
函數是預先定義的公式,可使用依特定順序指定的特定值 (稱為「引數」(Argument)) 執行計算。引數可以是常值或欄位,或是兩者的組合。當公式中使用欄位時,欄位名稱代表欄位的每個執行個體。如果引數是常值,您可能需要使用特定的字元來表示引數是常值。
函數可用於執行簡單或複雜的計算。函數的結構以函數名稱開始,隨後是左括號、以逗號分隔的函數引數,和右括號。
引數可以是欄位參考、數字、文字和邏輯值 (如 TRUE 或 FALSE)。引數也可以是常數、公式或其他函數。您輸入的引數必須產生該引數的有效值。例如,如果公式是兩個整數相乘,則結果不能是文字字串。
報表產生器隨附下列九種常用函數的類別:
彙總函式 |
AVG, COUNT, COUNTDISTINCT, MAX, MIN, STDEV, STDEVP, SUM, VAR, VARP |
條件式函數 |
IF, IN, SWITCH |
轉換函數 |
INT, DECIMAL, FLOAT, TEXT |
日期和時間函數 |
DATE, DATEADD, DATEDIFF, DATETIME, DATEONLY, DAY, DAYOFWEEK, DAYOFYEAR, HOUR, MINUTE, MONTH, NOW, QUARTER, SECOND, TIMEONLY, TODAY, WEEK, YEAR |
資訊函數 |
GETUSERCULTURE,GETUSERID |
邏輯函數 |
AND, NOT, OR |
數學函數 |
MOD, ROUND, TRUNC |
運算子 |
加 (+)、除 (/)、等於 (=)、乘冪 (^)、大於 (>)、大於或等於 (>=)、小於 (<)、小於或等於 (<=)、乘 (*)、負 (-)、不等於 (<>)、減 (-) |
文字函數 |
CONCAT, FIND, LEFT, LENGTH, LOWER, LTRIM, REPLACE, RIGHT, RTRIM, SUBSTRING, UPPER |
如需函數定義、語法和範例的清單,請參閱<定義公式對話方塊 (報表產生器 3.0)>。