Compartilhar via


Função CountDistinct (Construtor de Relatórios 3.0 e SSRS)

Retorna uma contagem de todos os valores não nulos distintos especificados pela expressão, avaliados no contexto do escopo fornecido.

ObservaçãoObservação

É possível criar e modificar definições de relatórios (.rdl) no Report Builder 3.0 e no Designer de Relatórios no Business Intelligence Development Studio. Cada ambiente de criação fornece diferentes maneiras de criar, abrir e salvar relatórios e itens relacionados. Para obter mais informações, consulte Projetando e implementando relatórios usando o Designer de Relatórios (Reporting Services) na Web em microsoft.com.

Sintaxe

CountDistinct(expression, scope, recursive)

Parâmetros

  • expression
    (Variant) A expressão na qual a agregação é executada.

  • scope
    (String) Opcional. O nome de um conjunto de dados, grupo ou região de dados que contém os itens de relatório aos quais a função de agregação deve ser aplicada. Se scope não estiver especificado, será usado o escopo atual.

  • recursive
    (Tipo Enumerado) Opcional. Simple (padrão) ou RdlRecursive. Especifica se a agregação deve ser executada recursivamente.

Tipo de retorno

Retorna um Integer.

Comentários

O valor de scope deve ser uma constante de cadeia de caracteres e não pode ser uma expressão. Para agregações externas ou que não especificam outras agregações, scope deve se referir ao escopo atual ou a um escopo contentor. Para agregações de agregações, as agregações aninhadas podem especificar um escopo filho.

Expression pode conter chamadas para funções de agregação aninhadas com as seguintes exceções e condições:

  • Scope para agregações aninhadas deve ser igual ao escopo da agregação externa ou deve estar contido nela. Para todos os escopos distintos na expressão, um escopo deve estar em uma relação filho com todos os outros escopos.

  • Scope para agregações aninhadas não pode ser o nome de um conjunto de dados.

  • Expression não deve conter a função First, Last, Previous ou RunningValue.

  • Expression não deve conter agregações aninhadas que especifiquem recursive.

Para obter mais informações, consulte Referência de funções de agregação (Construtor de Relatórios 3.0 e SSRS) e Compreendendo o escopo das expressões para totais, agregações e coleções internas (Construtor de Relatórios 3.0 e SSRS).

Para obter mais informações sobre agregações recursivas, consulte Criando grupos de hierarquias recursivas (Construtor de Relatórios 3.0 e SSRS).

Exemplo

O seguinte exemplo de código mostra uma expressão que calcula o número de valores não nulos exclusivos de Size para o escopo padrão e para um escopo do grupo pai. A expressão é adicionada a uma célula em uma linha que pertence ao GroupbySubcategory do grupo filho. O grupo pai é GroupbyCategory. A expressão exibe os resultados de GroupbySubcategory (o escopo padrão) e de GroupbyCategory (o escopo do grupo pai).

ObservaçãoObservação

As expressões não devem conter retornos de carro reais e quebras de linha. Eles estão incluídos no código de exemplo para oferecer suporte a processadores de documentação. Se você copiar o seguinte exemplo, remova os retornos de carro de cada linha.

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