Only

Only() retorna um valor se houver um e somente um resultado possível a partir dos dados agregados. Por exemplo, procurar o único produto em que o preço unitário =9 retornará NULL se mais de um produto tiver um preço unitário de 9.

Syntax:  

Only([{SetExpression}] [TOTAL [<fld {,fld}>]] expr)

Return data type: dual

Arguments:  

Argumento Descrição
expr A expressão ou campo que contém os dados a serem medidos.
SetExpression Por padrão, a função de agregação agregará um conjunto de registros possíveis definidos pela seleção. Um conjunto de registros alternativos pode ser definido por uma expressão de análise.
TOTAL

Se a palavra TOTAL ocorrer antes dos argumentos da função, o cálculo é feito sobre todos os valores possíveis, dadas as seleções atuais, e não apenas sobre os pertinentes ao valor dimensional atual, isto é, desconsiderando as dimensões do gráfico.

O qualificador TOTAL pode vir seguido de uma lista de um ou mais nomes de campos dentro de sinais de maior e menor que <fld>. Esses nomes de campos devem ser um subconjunto das variáveis de dimensões do gráfico.

Definindo o escopo de agregação

Dica: Use Only() quando desejar obter um resultado NULL, se houver vários valores possíveis nos dados de exemplo.

Examples and results:  

Customer Product UnitSales UnitPrice
Astrida AA 4 16
Astrida AA 10 15
Astrida BB 9 9
Betacab BB 5 10
Betacab CC 2 20
Betacab DD - 25
Canutility AA 8 15
Canutility CC - 19
Exemplos Resultados

Only({<UnitPrice={9}>} Product)

BB, porque esse é o único Productque tem um UnitPrice de '9'.

Only({<Product={DD}>} Customer)

Betacab, porque este é o único Customer que vende um Product chamado 'DD'.

Only({<UnitPrice={20}>} UnitSales)

O número de UnitSales onde UnitPrice é 20 é 2, pois existe apenas um único valor de UnitSales, onde o UnitPrice =20.

Only({<UnitPrice={15}>} UnitSales)

NULL, pois existem dois valores de UnitSales, onde o UnitPrice =15.

Dados usados nos exemplos:

ProductData:

LOAD * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD||25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');