共用方式為


CountDistinct 函數 (報表產生器及 SSRS)

傳回運算式指定的所有非 Null 相異值的計數 (在給定範圍的內容中評估)。

[!附註]

您可以在報表產生器以及 SQL Server Data Tools 的報表設計師中建立和修改報表定義 (.rdl)。每種撰寫環境都會提供不同的方式來建立、開啟和儲存報表與相關的項目。如需詳細資訊,請參閱 microsoft.com 網站上的<在報表設計師及報表產生器中設計報表 (SSRS)>。

語法

CountDistinct(expression, scope, recursive)

參數

  • expression
    (Variant) 要在其上執行彙總的運算式。

  • scope
    (String) 選擇性。 包含要套用彙總函式之報表項目的資料集、群組或資料區的名稱。 如果未指定 scope,則使用目前的範圍。

  • recursive
    (列舉型別) 選擇性。 Simple (預設值) 或 RdlRecursive。 指定是否要以遞迴方式執行彙總。

傳回類型

傳回 Integer。

備註

scope 的值必須是字串常數,而且不得為運算式。 如果是未指定其他彙總的外部彙總,scope 必須參考目前的範圍或是包含的範圍。 如果是彙總的彙總,巢狀彙總可以指定子範圍。

Expression 可以包含巢狀彙總函式的呼叫,其中包含下列例外和條件:

  • 巢狀彙總的 Scope 必須與外部彙總的範圍相同或是由外部彙總的範圍所限制。 如果是運算式中的所有相異範圍,一個範圍必須與所有其他範圍之間具有子關聯性。

  • 巢狀彙總的 Scope 不得為資料集的名稱。

  • Expression 不得包含 First、Last、Previous 或 RunningValue 函數。

  • Expression 不得包含指定 recursive 的巢狀彙總。

如需詳細資訊,請參閱<彙總函式參考 (報表產生器及 SSRS)>和<總計、彙總與內建集合的運算式範圍 (報表產生器及 SSRS)>。

如需有關遞迴彙總的詳細資訊,請參閱<建立多個遞迴階層群組 (報表產生器 3.0 及 SSRS)>。

範例

下列程式碼範例顯示的運算式會針對預設範圍及父群組範圍,計算 Size 的非 Null 唯一值數目。 運算式會加到屬於子群組 GroupbySubcategory 的資料列中的資料格。 父群組是 GroupbyCategory。 運算式會先顯示 GroupbySubcategory (預設範圍) 的結果,再顯示 GroupbyCategory (父群組範圍) 的結果。

[!附註]

運算式不會真的包含歸位字元和分行符號;範例程式碼是為了支援文件轉譯器而包含這些字元及符號。 如果要複製下列範例,請移除每一行的歸位字元。

="Distinct count (Subcategory): " & CountDistinct(Fields!Size.Value) & 
"Distinct count (Category): " & CountDistinct(Fields!Size.Value,"GroupbyCategory")

請參閱

參考

運算式範例 (報表產生器及 SSRS)

概念

報表中的運算式用法 (報表產生器及 SSRS)

運算式中的資料類型 (報表產生器及 SSRS)

總計、彙總與內建集合的運算式範圍 (報表產生器及 SSRS)