Funções específicas do fornecedor Constantes Uma constante é um valor fixo que você pode usar em uma expressão. Operadores Os operadores especificam o que acontece com os valores em ambos os lados do operador. Os operadores são semelhantes às funções, porque manipulam itens de dados e retornam um resultado. data Insere a data atual do sistema. data/hora Insere a data e a hora atual do sistema. horário com fuso horário Insere um horário de zero com fuso horário registro de data e hora com fuso horário Insere um exemplo de um registro de data e hora com o fuso horário. Insere um valor falso. intervalo Insere um intervalo de zeros: 000 00:00:00.000. intervalo ano Insere um intervalo de zero ano: 0 ano. intervalo mês Insere um intervalo de zero mês: 0 mês. intervalo ano a mês Insere um intervalo de zero ano a mês: 0000-00 ano a mês. intervalo dia Insere um intervalo de zero dia: 0 dia. intervalo hora Insere um intervalo de zero hora: 0 hora. intervalo minuto Insere um intervalo de zero minuto: 0 minuto. intervalo segundo Insere um intervalo de zero segundo: 0 segundo. intervalo dia a hora Insere um intervalo de zero dia a hora: 0 00 dia a hora. intervalo dia a minuto Insere um intervalo de zero dia a minuto: 0 00:00 dia a minuto. intervalo dia a segundo Insere um intervalo de zero dia a segundo: 0 00:00:00.000000000 dia a segundo. intervalo hora a minuto Insere um intervalo de zero hora a minuto: 00:00 hora a minuto. intervalo hora a segundo Insere um intervalo de zero hora a segundo: 00:00:00.000000000 hora a segundo. intervalo minuto a segundo Insere um intervalo de zero minuto a segundo: 00:00:00.000000000 minuto a segundo. Insere "nulo" se as condições da expressão não forem preenchidas. número Insere o número 0, que pode ser substituído por um valor numérico. sequência Insere uma sequência vazia como duas aspas simples entre as quais é possível inserir uma sequência. horário Insere a hora atual do sistema. Insere um valor verdadeiro.
Identifica o começo de uma expressão. ( expressão ) Identifica o final de uma expressão. ( expressão ) Multiplica dois valores numéricos. valor1 * valor2 , Separa os componentes da expressão. expressão ( parâmetro1; parâmetro2 ) Divide dois valores numéricos. valor1 / valor2 Concatena, ou associa, strings. string1 || string2 Soma dois valores numéricos. valor1 + valor2 Subtrai dois valores numéricos ou torna negativo um valor numérico. valor1 - valor2 ou - valor Compara os valores representados por "valor1" e "valor2" e recupera os valores menores que "valor2". valor1 < valor2 Compara os valores representados por "valor1" e "valor2" e recupera os valores menores ou iguais a "valor2". valor1 <= valor2 Compara os valores representados por "valor1" e "valor2" e recupera os valores diferentes de "valor2". valor1 <> valor2 Compara os valores representados por "valor1" e "valor2" e recupera os valores iguais a "valor2". valor1 = valor2 Compara os valores representados por "valor1" e "valor2" e recupera os valores maiores que "valor2". valor1 > valor2 Separa os componentes em uma expressão de membro literal. [namespace].[dimensão].[hierarquia].[nível]->[L1] Compara os valores representados por "valor1" e "valor2" e recupera os valores maiores ou iguais a "valor2". valor1 >= valor2 Retorna "verdadeiro" se as condições nos dois lados da expressão forem verdadeiras. argumento1 and argumento2 Funciona com expressões de resumo para definir o escopo a ser ajustado com base nas colunas de agrupamento na consulta. O escopo depende do contexto. aggregate_function ( expression AUTO ) Determina se um valor enquadra-se em um determinado intervalo. expressão between valor1 and valor2 Exemplo: [Renda] between 200 and 300 Resultado: Retorna o número de resultados com rendas between 200 and 300. Revenue Between ---- ---- $332.06 false $230.55 true $107.94 false Trabalha com when, then, else e end. Case identifica o começo de uma situação específica, na qual as ações when, then e else estão definidas. case expressão { when expressão then expressão } [ else expressão ] end Determina se a "string1" contém a "string2". Essa sintaxe suporta os dois metacaracteres: o sinal de porcentagem (%) representa zero, um ou diversos caracteres e o sinal de sublinhado (_) representa qualquer caractere. A palavra-chave opcional LITERAL indica como '%' e '_' são interpretados. Quando a palavra-chave LITERAL estiver presente, '%' e '_' não devem ser tratados como metacaracteres (consulte os exemplos 3 e 5). Caso contrário, na ausência da palavra-chave LITERAL, '%' e '_' se comportam como metacaracteres (consulte os exemplos 1, 2 e 4). string1 contém [LITERAL] string2 Exemplo 1: [PRODUCT_LINE] contém 'porta' Resultado 1: equipamento externo Exemplo 2: [PRODUCT_LINE] contém 'Golf%' Resultado 2: equipamento de golfe Exemplo 3: [PRODUCT_LINE] contém 'Golf%' literal Resultado 3: Golf% Exemplo 4: [PRODUCT_LINE] contém 'Current_Year%' Resultado 4: preço do ano atual, Current Year Price%, Current_Year Price%. Exemplo 5: [PRODUCT_LINE] contém 'Current_Year%' literal Resultado 5: Current_Year%. Palavra-chave que pode ser usada como primeiro argumento das funções de resumo do membro. Essa função aparece no relatório de amostra Receita total por país no pacote GO Data Warehouse (consulta). função_agregada ( currentMeasure expressão within set ) current_date  Retorna a data atual do banco de dados. current_date  Trabalha com a construção lookup. consulta (....) em (....) padrão (....) Palavra-chave utilizada em uma expressão agregada para incluir somente ocorrências distintas de valores. Consulte também a função unique. distinct dataItem Exemplo: count ( distinct [OrderDetailQuantity] ) Resultado: 1704 Trabalha com construções if ou case. Se a condição if ou a expressão case não forem verdadeiras, a expressão else será utilizada. Essa função aparece no relatório de amostra Top 10 Varejistas de 2005 no pacote GO Data Warehouse (análise). if ( condição ) then .... else ( expressão ) ; ou case .... else ( expressão ) end Indica o final de uma construção case ou when. case .... end Determina se a "string1" termina com "string2". Essa sintaxe suporta os dois metacaracteres: o sinal de porcentagem (%) representa zero, um ou diversos caracteres e o sinal de sublinhado (_) representa qualquer caractere. A palavra-chave opcional LITERAL indica como '%' e '_' são interpretados. Quando a palavra-chave LITERAL estiver presente, '%' e '_' não devem ser tratados como metacaracteres (consulte os exemplos 3 e 5). Caso contrário, na ausência da palavra-chave LITERAL, '%' e '_' se comportam como metacaracteres (consulte os exemplos 1, 2 e 4). string1 termina com [LITERAL] string2 Exemplo 1: [PRODUCT_LINE] termina com 'Equipamento' Resultado 1: equipamento de acampamento, equipamento de golfe Exemplo 2: [PRODUCT_LINE] termina com '%Equipment' Resultado 2: equipamento de golfe, equipamento de acampamento Exemplo 3: [PRODUCT_LINE] termina com 'Equipment%' literal Resultado 3: Equipment% Exemplo 4: [PRODUCT_LINE] termina com '%Price' Resultado 4: preço do produto, Preço Current_Year Exemplo 5: [PRODUCT_LINE] termina com '%Price' literal Resultado 5: %Price Determina se a "string1" corresponde ao padrão da "string2", com o caractere "char" usado opcionalmente para os caracteres de escape na sequência padrão. string1 LIKE string2 [ ESCAPE char ] Exemplo: [PRODUCT_LINE] like 'G%' Resultado: Todas as linhas de produtos que se iniciam com 'G'. Exemplo: [PRODUCT_LINE] like '%Ga%' escape 'a' Resultado: Todas as linhas de produtos que terminam com 'G%'. Trabalha com expressões de resumo para definir o escopo da agregação na consulta. função_agregada ( expressão for expressão { ; expressão } ) Funciona com expressões de resumo para definir o escopo a ser ajustado com base em um subconjunto nas colunas de agrupamento na consulta. Equivalente à cláusula for. aggregate_function ( expressão for ANY expressão { ; expressão } ) Funciona com expressões de resumo para definir o escopo a se tornar todas as colunas especificadas de agrupamento na consulta. Consulte também a cláusula for. função_agregada ( expressão for ALL expressão { ; expressão } ) Funciona com expressões de resumo para configurar o escopo como toda a consulta. Consulte também a cláusula for. Essa função aparece no relatório de amostra Satisfação e retorno do consumidor no pacote GO Data Warehouse (análise). aggregate_function ( expressão for report ) Trabalha com construções then e else. If define uma condição. Se a condição if for verdadeira, a expressão then será utilizada. Se a condição if não for verdadeira, a expressão else será utilizada. Essa função aparece no relatório de amostra Top 10 Varejistas de 2005 no pacote GO Data Warehouse (análise). if ( condição ) then ( expressão ) else ( expressão ) Determina se a "expressão1" existe em uma lista de expressões. expressão1 in ( lista_de_expressões ) Determina se a "expressão1" existe em uma lista de valores ou intervalos constantes. expressão1 in_range { constante : constante [ ; constante : constante ] } Exemplo: [código] in_range { 5 } Resultado: é equivalente a [código] = 5. Exemplo: [código] in_range { 5: } Resultado: é equivalente a [código] >= 5. Exemplo: [código] in_range { :5 } Resultado: é equivalente a [código] <= 5. Exemplo: [código] in_range { 5:10 } Resultado: Isto é equivalente a ( [código] >= 5 e [código] <= 10 ). Exemplo: [código] in_range { :5;10;20: } Resultado: Isto é equivalente a ( [código] <= 5 ou [código] = 10 ou [código] >= 20 ). Determina se um "valor" está indefinido nos dados. valor is missing Determina se um "valor" está indefinido nos dados. valor is null Determina se o "valor" está definido nos dados. valor is not missing Determina se o "valor" está definido nos dados. valor is not null Determina se a "string1" corresponde ao padrão da "string2", com o caractere "char" usado opcionalmente para os caracteres de escape na sequência padrão. Essa sintaxe suporta os dois metacaracteres: o sinal de porcentagem (%) representa zero, um ou diversos caracteres e o sinal de sublinhado (_) representa qualquer caractere. string1 LIKE string2 [ ESCAPE char ] Exemplo 1: [PRODUCT_LINE] como 'G%' Resultado 1: todas as linhas de produtos que iniciam com 'G'. Exemplo 2: [PRODUCT_LINE] como '%Ga%' ignorando o 'a' Resultado 2: todas as linhas de produtos que terminam com 'G%'. Exemplo 3: [PRODUCT_LINE] como 'C_R_' Resultado 3: todas as linhas de produtos com o nome CARS ou CARD. Exemplo: lookup ( [País]) in ( 'Canadá'--> ( [Preço de Lista] * 0,60); 'Austrália'--> ( [Preço de Lista] * 0,80 ) ) default ( [Preço de Lista] ) Localiza e substitui dados por um valor que você especifica. É preferível utilizar a construção case. lookup ( nome ) in ( valor1 --> valor2 ) default ( expressão ) Retorna TRUE se o "argumento" for falso ou retorna FALSE se o "argumento" for verdadeiro. NOT argumento Retorna TRUE caso o "argumento1" ou o "argumento2" sejam verdadeiros. argumento1 or argumento2 Executa um cálculo de resumo antes da aplicação do filtro de resumo. summary_function ([expressão] prefilter) Exemplo: total ( [Quantity] for report prefilter ) summaryFilter: total( [Quantity] for [ProductNo] ) > 50000 Resultado: Soma as quantidades em um relatório antes que o filtro de resumo seja aplicado. PNo Total Total Total forPNo forRep forRep_Prefilter --------- -------- ---------- ------------------- 88 54928 298140 2215354 89 51126 298140 2215354 90 69996 298140 2215354 94 69004 298140 2215354 95 53086 298140 2215354 Conta o número de linhas geradas pela consulta. Use com Count(). count ( ROWS ) Conta o número de linhas geradas pela consulta. Use com Count(). contagem ( ROWS  [ expression ]) Determina se a "string1" inicia-se com "string2". Essa sintaxe suporta os dois metacaracteres: o sinal de porcentagem (%) representa zero, um ou diversos caracteres e o sinal de sublinhado (_) representa qualquer caractere. A palavra-chave opcional LITERAL indica como '%' e '_' são interpretados. Quando a palavra-chave LITERAL estiver presente, '%' e '_' não devem ser tratados como metacaracteres (consulte os exemplos 3 e 5). Caso contrário, na ausência da palavra-chave LITERAL, '%' e '_' se comportam como metacaracteres (consulte os exemplos 1, 2 e 4). string1 começa com [LITERAL] string2 Exemplo 1: [PRODUCT_LINE] começa com 'Golf' Resultado 1: equipamento de golfe Exemplo 2: [PRODUCT_LINE] começa com 'Outdoor%' Resultado 2: equipamento externo Exemplo 3: [PRODUCT_LINE] começa com 'Golf%' literal Resultado 3: Golf% Exemplo 4: [PRODUCT_LINE] começa com 'Current_Year%' Resultado 4: preço do ano atual, Current Year Price%, Current_Year Price% Exemplo 5: [PRODUCT_LINE] começa com 'Current_Year%' literal Resultado 5: Current_Year% Trabalha com construções if ou case. Se a condição if ou a expressão case forem verdadeiras, a expressão else será utilizada. Essa função aparece no relatório de amostra Top 10 Varejistas de 2005 no pacote GO Data Warehouse (análise). if ( condição ) expressão then ..., ou case expressão when then .... end Trabalha com a construção case. É possível definir quais condições ocorrerão se a expressão WHEN for verdadeira. case [expressão] when ... end
Resumos Esta lista contém funções pré-definidas que retornam ou um único valor de resumo para um grupo de valores relacionados ou um valor de resumo diferente para cada instância de um grupo de valores relacionados. Retorna um valor calculado utilizando a função de agregação adequada, com base no tipo de agregação da expressão. Essa função aparece no relatório de amostra Orçamento vs. Atual no pacote GO Data Warehouse (análise). aggregate ( expression [ auto ] ) aggregate ( expression for [ all|any ] expression { ; expression } ) aggregate ( expression for report ) Retorna a média do valor dos itens de dados selecionados. Distinct é uma expressão alternativa que é compatível com versões anteriores do produto. average ( [ distinct ] expression [ auto ] ) average ( [ distinct ] expression for [ all|any ] expression { ; expression } ) average ( [ distinct ] expression for report ) Exemplo: average ( Sales ) Resultado: retorna a média de todos os valores de Vendas. Retorna o número de itens de dados selecionados, com exceção de valores nulos. Distinct é uma expressão alternativa que é compatível com versões anteriores do produto. Todas as versões são suportadas apenas no modo DQM e isso evita a presunção de uma contagem dupla de itens de dados de uma tabela de dimensões. toda ( [ contagem | expressão ] distinta [ auto ] ) toda ( [ contagem | expressão ] distinta para [ todas|nenhuma ] expressão { , expressão } ) toda ( [ contagem | expressão ] distinta para relatório  ) Exemplo: count ( Vendas ) Resultado: retorna o número total de entradas em Vendas. Retorna o valor máximo dos itens de dados selecionados. Distinct é uma expressão alternativa que é compatível com versões anteriores do produto. maximum ( [ distinct ] expressão [ auto ] ) maximum ( [ distinct ] expressão for [ all|any ] expressão { ; expressão } ) maximum ( [ distinct ] expressão for report ) Exemplo: maximum ( Sales ) Resultado: retorna o valor máximo de todos os valores de Vendas. Retorna o valor mediano dos itens de dados selecionados. median ( expression [ auto ] ) median ( expression for [ all|any ] expression { ; expression } ) median ( expression for report ) Retorna o valor mínimo dos itens de dados selecionados. Distinct é uma expressão alternativa que é compatível com versões anteriores do produto. minimum ( [ distinct ] expressão [ auto ] ) minimum ( [ distinct ] expressão for [ all|any ] expressão { ; expressão } ) minimum ( [ distinct ] expressão for report ) Exemplo: minimum ( Vendas ) Resultado: Retorna o valor mínimo de todos os valores de Vendas. Retorna uma média móvel por linha para um conjunto especificado de valores de um determinado número de linhas. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. moving-average ( numeric_expression ; numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) moving-average (  numeric_expression ; numeric_expression [ <for-option> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: moving-average ( Qtde ; 3 ) Resultado: Para cada linha, retorna a quantidade e a média móvel da linha atual e das duas linhas anteriores. Qty Moving-Average (Qty, 3) ------ ------------------------------------ 200 200 700 450 400 433.3333 200 433.3333 200 266.6667 500 300.0000 Retorna um total móvel por linha para um conjunto especificado de valores por um determinado número de linhas. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. moving-total ( numeric_expression ; numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) moving-total (  numeric_expression ; numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: moving-total ( Qtde ; 3 ) Resultado: Para cada linha, retorna a quantidade e o total móvel da linha atual e das duas linhas anteriores. Qty Moving-Total (Qty, 3) ------ -------------------------------- 200 200 700 900 400 1300 200 1300 200 800 500 900 Retorna o percentual do valor total para os itens de dados selecionados. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. Essa função se encontra no relatório de amostra interativo Cálculo de porcentagem (por ano). percentage ( numeric_expression [ at expressão  { ; expressão } ] [ <for-opção> ] [ prefilter ] ) percentage (  numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: percentage ( Vendas 98 ) Resultado: retorna a porcentagem do total de vendas para 1998 atribuída a cada representante de vendas. Employee Sales 98 Percentage --------- --------- ------------- Gibbons 60646 7.11% Flertjan 62523 7.35% Cornel 22396 2.63% Retorna um valor, em uma escala de cem, que indica a porcentagem de uma distribuição que seja igual ou superior aos itens de dados selecionados. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. percentile ( numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) percentile (  numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: percentile ( Vendas 98 ) Resultado: Para cada linha, retorna a porcentagem de linhas iguais ou menores do que o valor quantitativo da linha. Qty Percentile (Qty) ------ ----------------- 800 1 700 0.875 600 0.75 500 0.625 400 0.5 400 0.5 200 0.25 200 0.25 Retorna a posição de um valor de um intervalo especificado. Retorna números inteiros para representar qualquer intervalo de classificações, como 1 (mais alto) a 100 (mais baixo). A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. quantile ( numeric_expression ; numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) quantile (  numeric_expression ; numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: quantile ( Qtde ; 4 ) Resultado: Retorna a quantidade, a posição do valor da quantidade e os valores de quantidade divididos em 4 grupos quantis (quartis). Qty Rank Quantile (Qty, 4) ------ ------- --------------- 800 1 1 700 2 1 600 3 2 500 4 2 400 5 3 400 5 3 200 7 4 200 7 4 Retorna a classificação de um valor, representado por números inteiros de 1 (máximo) a 4 (mínimo), com relação a um grupo de valores. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. quartile ( numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) quartile (  numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: quartile ( Qtde ) Resultado: Retorna a quantidade e o quartil do valor de quantidade representados por números inteiros de 1 (mais alta) a 4 (mais baixa). Qty Quartile (Qty) ------ --------------------- 450 1 400 1 350 2 300 2 250 3 200 3 150 4 100 4 Retorna o valor de classificação dos itens de dados selecionados. A ordem de classificação é opcional; a ordem decrescente (DESC) é assumida como padrão. Se uma ou mais linhas se unirem, então haverá um espaço entre a sequência dos valores classificados (também conhecido como classificação olímpica). A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. Distinct é uma expressão alternativa que é compatível com versões anteriores do produto. Os valores nulos são classificados em último. Essa função aparece no relatório de amostra Top 10 Varejistas de 2005 no pacote GO Data Warehouse (análise). rank ( expressão [ ASC|DESC ] { ; expressão [ ASC|DESC ] } [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) rank ( [ distinct ] expressão [ ASC|DESC ] { ; expressão [ ASC|DESC ] } [ <for-option>] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: rank ( Sales 98 ) Resultado: para cada linha, retorna o valor de posição das vendas para 1998 atribuído a cada representante de vendas. Alguns números são pulados quando ocorre uma ligação entre linhas. Employee Sales 98 Rank --------- --------- ------------ Gibbons 60000 1 Flertjan 50000 2 Cornel 50000 2 Smith 48000 4 Retorna a média em execução por linha (incluindo a linha atual) para um conjunto de valores. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. running-average ( numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) running-average (  numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: running-average ( Qtde ) Resultado: para cada linha, retorna a quantidade e a média em execução da linha atual e das linhas anteriores. Name Qty Avg Running-Average for name ------- ------ ------ ----------------------- Smith 7 5 7 Smith 3 5 5 Smith 6 5 5.33 Smith 4 5 5 Wong 3 4 3 Wong 5 4 4 Retorna a contagem em execução por linha (incluindo a linha atual) de um conjunto de valores. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. running-count ( numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) running-count (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: running-count ( Qtde ) Resultado: para cada linha, retorna a quantidade e a contagem em execução da posição da linha atual. Name Qty Count Running-Count for name ------- ------ --------- ------------------------ Smith 7 4 1 Smith 3 4 2 Smith 6 4 3 Smith 4 4 4 Wong 3 3 1 Wong 5 3 2 Retorna uma diferença running por linha, calculada como a diferença entre o valor da linha atual e a linha anterior, (incluindo a atual) de um conjunto de valores. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. running-difference ( numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) running-difference (  numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: running-difference ( Qtde ) Resultado: para cada linha; retorna a quantidade e a diferença de execução entre o valor da linha atual e o da anterior. Name Qty Running-Difference for name ------- ------ --------------------------- Smith 7 NULL Smith 3 -4 Smith 6 3 Smith 4 -2 Wong 3 -1 Wong 5 2 Retorna o máximo de execução por linha (incluindo a atual) para um conjunto de valores. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. running-maximum (  numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) running-maximum (  numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: running-maximum ( Qtde ) Resultado: para cada linha, retorna a quantidade e o máximo de execução da linha atual e das linhas anteriores. Name Qty Max Running-Maximum (Qty) for name ------- ------ ------ ------------------------- Smith 2 7 2 Smith 3 7 3 Smith 6 7 6 Smith 7 7 7 Wong 3 5 3 Wong 5 5 5 Retorna o mínimo de execução por linha (incluindo a linha atual) para um conjunto de valores. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. running-minimum ( numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) running-minimum (  numeric_expression [ <for-opção> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: running-minimum ( Qtde ) Resultado: para cada linha, retorna a quantidade e o mínimo de execução da linha atual e das linhas anteriores. Name Qty Min Running-Minimum (Qty) for name ------- ----- ------ -------------------------- Smith 7 2 7 Smith 3 2 3 Smith 6 2 3 Smith 2 2 2 Wong 4 3 4 Wong 5 3 4 Retorna o total acumulado por linha (incluindo a linha atual) para um conjunto de valores. A "<opção for>" define o escopo da função. A opção "at" define o nível de agregação e só é possível utilizá-la no contexto de origens de dados relacionais. running-total ( numeric_expression [ at expressão { ; expressão } ] [ <for-opção> ] [ prefilter ] ) running-total (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-opção> ::= for expressão { ; expressão }|for report|auto Exemplo: running-total ( Qtde ) Resultado: para cada linha, retorna a quantidade e o total acumulado da linha atual e das linhas anteriores. Name Qty Total Running-Total (Qty) for name ------- ------ -------- ------------------------- Smith 2 18 2 Smith 3 18 5 Smith 6 18 11 Smith 7 18 18 Wong 3 12 3 Wong 5 12 8 Retorna o desvio padrão dos itens de dados selecionados. standard-deviation (  expressão [ auto ] ) standard-deviation (  expressão for [ all|any ] expressão { ; expressão } ) standard-deviation (  expressão for report ) Exemplo: standard-deviation ( ProductCost ) Resultado: Retorna um valor indicando o desvio entre os custos do produto e o custo médio do produto. Calcula o desvio padrão da população e retorna a raiz quadrada da variação populacional. standard-deviation-pop (  expressão [ auto ] ) standard-deviation-pop (  expressão for [ all|any ] expressão { ; expression } ) standard-deviation-pop (  expressão for report ) Exemplo: standard-deviation-pop ( ProductCost ) Resultado: retorna um valor da raiz quadrada da variação populacional. Calcula o desvio padrão da amostra e retorna a raiz quadrada da variação populacional. standard-deviation-samp (  expression [ auto ] ) standard-deviation-samp (  expression for [ all|any ] expression { ; expression } ) standard-deviation-samp (  expression for report ) Exemplo: standard-deviation-samp ( ProductCost ) Resultado: retorna um valor da raiz quadrada da variação da amostra. Retorna a posição de um valor como Alto, Intermediário ou Baixo em relação a um grupo de valores. tertile (  expressão [ auto ] ) tertile (  expressão for [ all|any ] expressão { ; expressão } ) tertile (  expressão for report ) Exemplo: tertile ( Qty ) Resultado: Retorna a quantidade, o quantil do valor da quantidade dividido em tertis e os valores de quantidades divididos em tertis. Qty Quantile (Qty, 3) Tertile (Qty) ------ ------------------------ ------------------ 800 1 H 700 1 H 500 2 M 400 2 M 200 3 L 200 3 L Retorna o valor total dos itens de dados selecionados. Distinct é uma expressão alternativa que é compatível com versões anteriores do produto. Essa função aparece no relatório de amostra Orçamento vs. Atual no pacote GO Data Warehouse (análise). total ( [ distinct ] expressão [ auto ] ) total ( [ distinct ] expression for [ all|any ] expression { ; expression } ) total ( [ distinct ] expressão for report ) Exemplo: total ( Vendas ) Resultado: retorna o valor total de todos os valores de Vendas. Funções estatísticas Esta lista contém funções de resumo predefinidas de natureza estatística. Retorna a variação dos itens de dados selecionados. variance (  expressão [ auto ] ) variance (  expressão for [ all|any ] expressão { ; expressão } ) variance (  expressão for report ) Exemplo: variance ( Custo do Produto ) Resultado: Retorna um valor indicando o grau de variação dos custos do produto em relação aos custos médios. Retorna a variação populacional de um conjunto de números após o descarte dos valores nulos desse conjunto. variance-pop (  expressão [ auto ] ) variance-pop (  expressão for [ all|any ] expressão { ; expression } ) variance-pop (  expressão for report ) Exemplo: variance-pop ( Qtde ) Resultado: para cada linha; retorna a variação populacional de um conjunto de números após o descarte dos valores nulos desse conjunto. Retorna a variância da amostra de um conjunto de números após o descarte dos valores nulos nesse conjunto. variance-samp (  expression [ auto ] ) variance-samp (  expression for [ all|any ] expression { ; expression } ) variance-samp (  expression for report ) Exemplo: variance-samp ( Qty ) Resultado: para cada linha; retorna a variância da amostra de um conjunto de números após o descarte dos valores nulos desse conjunto. corr ( numeric_expression1 ;  numeric_expression2  [ auto ] ) corr ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) corr ( numeric_expression1 ;  numeric_expression2 for report ) Retorna o coeficiente de correlação de um conjunto de números pares. Isso é calculado conforme segue: COVAR_POP(numeric_expression1; numeric_expression2) / (STDDEV_POP(numeric_expression1) * STDDEV_POP(numeric_expression2)) Exemplo: corr ( Cost ;  Margin  for report) Resultado: o coeficiente de correlação entre Cost e Margin. Cost Margin corr (Cost, Margin for report) ------- ---------- ----------------------------------------- 4 0.33 0.0872648 5 0.28 0.0872648 9.22 0.23 0.0872648 15.93 0.28 0.0872648 34.97 0.3 0.0872648 covariance-pop ( numeric_expression1 ;  numeric_expression2 ) covariance-pop ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) covariance-pop ( numeric_expression1 ;  numeric_expression2 for report ) Retorna a covariância de devoluções de um conjunto de números pares. Exemplo: covariance-pop ( Cost ;  Margin  for report) Resultado: a covariância de preenchimento entre Cost e Margin. Cost Margin covariance-pop (Cost, Margin for report) ------- ---------- --------------------------------------------------------- 4 0.33 0.032384 5 0.28 0.032384 9.22 0.23 0.032384 15.93 0.28 0.032384 34.97 0.3 0.032384 covariance-samp ( numeric_expression1 ;  numeric_expression2 ) covariance-samp ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) covariance-samp ( numeric_expression1 ;  numeric_expression2 for report ) Retorna a covariância de amostra de um conjunto de números pares. Exemplo: covariance-samp ( Cost ;  Margin  for report) Resultado: a covariância de amostra entre Cost e Margin. Cost Margin covariance-samp (Cost, Margin for report) ------- ---------- ------------------------------------------------------------ 4 0.33 0.04048 5 0.28 0.04048 9.22 0.23 0.04048 15.93 0.28 0.04048 34.97 0.3 0.04048 regression-average-x ( numeric_expression1 ;  numeric_expression2 ) regression-average-x ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-average-x ( numeric_expression1 ;  numeric_expression2 for report ) Retorna a média da variável independente (numeric_expression2) da linha de regressão. Exemplo: regression-average-x ( Cost ;  Margin  for report) Resultado: a média de Margin na linha de regressão para Cost e Margin. Cost Margin regression-average-x (Cost, Margin for report) ------- ---------- ----------------------------------------------------------------- 4 0.33 0.284 5 0.28 0.284 9.22 0.23 0.284 15.93 0.28 0.284 34.97 0.3 0.284 regression-average-y ( numeric_expression1 ;  numeric_expression2 ) regression-average-y ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-average-y ( numeric_expression1 ;  numeric_expression2 for report ) Retorna a média da variável dependente (numeric_expression1) da linha de regressão. Exemplo: regression-average-y ( Cost ;  Margin  for report) Resultado: a média de Cost na linha de regressão para Cost e Margin. Cost Margin regression-average-y (Cost, Margin for report) ------- ---------- ----------------------------------------------------------------- 4 0.33 13.824 5 0.28 13.824 9.22 0.23 13.824 15.93 0.28 13.824 34.97 0.3 13.824 regression-count ( numeric_expression1 ;  numeric_expression2 ) regression-count ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-count ( numeric_expression1 ;  numeric_expression2 for report ) Retorna o número de números não nulos usado para ajustar a linha de regressão. Exemplo: regression-count ( Cost ;  Margin  for report) Resultado: o número de números não nulos usado para ajustar a linha de regressão para Cost e Margin. Cost Margin regression-count (Cost, Margin for report) ------- ---------- ----------------------------------------------------------- 4 0.33 5 5 0.28 5 9.22 0.23 5 15.93 0.28 5 34.97 0.3 5 regression-intercept ( numeric_expression1 ;  numeric_expression2 ) regression-intercept ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-intercept ( numeric_expression1 ;  numeric_expression2 for report ) Retorna a interceptação y da linha de regressão. Isso é calculado conforme segue: AVG(numeric_expression1) - REGR_SLOPE(numeric_expression1; numeric_expression2) * AVG(numeric_expression2) Exemplo: regression-intercept ( Cost ;  Margin  for report) Resultado: a interceptação y da linha de regressão para Cost e Margin. Cost Margin regression-intercept (Cost, Margin for report) ------- ---------- ---------------------------------------------------------------- 4 0.33 5.18015038 5 0.28 5.18015038 9.22 0.23 5.18015038 15.93 0.28 5.18015038 34.97 0.3 5.18015038 regression-r2 ( numeric_expression1 ;  numeric_expression2 ) regression-r2 ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-r2 ( numeric_expression1 ;  numeric_expression2 for report ) Retorna o coeficiente de determinação(também conhecido como "R-squared" ou "goodness of fit") da linha de regressão. Este valor é calculado com base nas seguintes condições: IF VAR_POP(numeric_expression2) = 0 THEN NULL IF VAR_POP(numeric_expression1) = 0 AND VAR_POP(numeric_expression2) <> 0 THEN 1 IF VAR_POP(numeric_expression1) > 0 and VAR_POP(numeric_expression2) <> 0 THEN POWER(CORR (numeric_expression1; numeric_expression2)) Exemplo: regression-r2 ( Cost ;  Margin  for report) Resultado: o coeficiente de determinação da linha de regressão para Cost e Margin. Cost Margin regression-r2 (Cost, Margin for report) ------- ---------- ------------------------------------------------------ 4 0.33 0.00761514 5 0.28 0.00761514 9.22 0.23 0.00761514 15.93 0.28 0.00761514 34.97 0.3 0.00761514 regression-slope ( numeric_expression1 ;  numeric_expression2 ) regression-slope ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-slope ( numeric_expression1 ;  numeric_expression2 for report ) Retorna a inclinação da linha de regressão. Isso calculado da seguinte maneira: COVAR_POP(numeric_expression1;numeric_expression2) / VAR_POP(numeric_expression2) Exemplo: regression-slope ( Cost ;  Margin ) Resultado: a inclinação da linha de regressão para Cost e Margin. Cost Margin regression-slope (Cost, Margin for report) ------- ---------- ----------------------------------------------------------- 4 0.33 30.43609023 5 0.28 30.43609023 9.22 0.23 30.43609023 15.93 0.28 30.43609023 34.97 0.3 30.43609023 regression-sxx ( numeric_expression1 ;  numeric_expression2 ) regression-sxx ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-sxx ( numeric_expression1 ;  numeric_expression2 for report ) Retorna o cálculo a seguir após eliminar pares NULL: REGR_COUNT(numeric_expression1; numeric_expression2) * VAR_POP(numeric_expression2) Exemplo: regression-sxx ( Cost ;  Margin  for report) Resultado: a computação sxx da linha de regressão para Cost e Margin. Cost Margin regression-sxx (Cost, Margin for report) ------- ---------- --------------------------------------------------------- 4 0.33 0.00532 5 0.28 0.00532 9.22 0.23 0.00532 15.93 0.28 0.00532 34.97 0.3 0.00532 regression-sxy ( numeric_expression1 ;  numeric_expression2 ) regression-sxy ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-sxy ( numeric_expression1 ;  numeric_expression2 for report ) Retorna o cálculo a seguir após eliminar pares NULL: REGR_COUNT(numeric_expression1; numeric_expression2) * COVAR_POP(numeric_expression1; numeric_expression2) Exemplo: regression-sxy ( Cost ;  Margin  for report) Resultado: a computação sxy da linha de regressão para Cost e Margin. Cost Margin regression-sxy (Cost, Margin for report) ------- ---------- --------------------------------------------------------- 4 0.33 0.16192 5 0.28 0.16192 9.22 0.23 0.16192 15.93 0.28 0.16192 34.97 0.3 0.16192 regression-syy ( numeric_expression1 ;  numeric_expression2 ) regression-syy ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-syy ( numeric_expression1 ;  numeric_expression2 for report ) Retorna o cálculo a seguir após eliminar pares NULL: REGR_COUNT(numeric_expression1; numeric_expression2) * VAR_POP(numeric_expression1) Exemplo: regression-syy ( Cost ;  Margin  for report) Resultado: a computação syy da linha de regressão para Cost e Margin. Cost Margin regression-syy (Cost, Margin for report) ------- ---------- --------------------------------------------------------- 4 0.33 647.15932 5 0.28 647.15932 9.22 0.23 647.15932 15.93 0.28 647.15932 34.97 0.3 647.15932 Resumos membros Esta lista contém funções predefinidas que retornam um valor de resumo para um conjunto de membros ou um valor de resumo diferente para cada membro de um conjunto de membros.
Erro Há um erro em sua expressão no token destacado.
Construções Esta lista contém construções e modelos que podem ser usados para criar uma expressão. Os modelos combinam múltiplas funções em um grupo. Por exemplo, o modelo de caso de procura inclui as funções case, when, else e end. Procurar case Esta construção é o modelo para um caso deprocura, incluindo as funções CASE, WHEN, ELSE e END. CASE WHEN [País] = 'Canadá' THEN ([Preço de tabela] * 0,60) WHEN [Código do país] > 100 THEN [Preço de tabela] * 0,80 ELSE [Preço de tabela] END case simples Esta construção é o modelo para um caso de amostra, incluindo as funções CASE, WHEN, ELSE e END. CASE [País] WHEN 'Canadá' THEN ([Preço de tabela] * 0,60) WHEN 'Austrália' THEN [Preço de tabela] * 0,80 ELSE [Preço de tabela] END if then else Esta construção é um modelo para um enunciado if...then...else. Esta construção aparece no relatório de amostra Top 10 Varejistas de 2005 no pacote GO Data Warehouse (análise). IF ([País] = 'Canadá') THEN ([Preço de tabela] * 0,60) ELSE ([Preço de tabela]) in_range Este é o modelo para a expressão in_range. [código] IN_RANGE { :30 ; 40; 50; 999: } Exemplo: [código] IN_RANGE { 5 } Resultado: é equivalente a [código] = 5. Exemplo: [código] IN_RANGE { 5: } Resultado: é equivalente a [código] >= 5. Exemplo: [código] IN_RANGE { :5 } Resultado: é equivalente a [código] <= 5. Exemplo: [código] IN_RANGE { 5:10 } Resultado: Isto é equivalente a ( [código] >= 5 e [código] <= 10 ). Exemplo: [código] IN_RANGE { :5;10;20: } Resultado: Isto é equivalente a ( [código] <= 5 ou [código] = 10 ou [código] >= 20 ).
Predicados de período Esta lista contém predicados que podem ser usados para comparar expressões de período. contém Retorna "true" se "period_expression1" contiver "period_expression2"; isto é, "true" é retornado se o primeiro período contiver o valor de data/hora ou todos os valores que estão contidos bo segundo período. period_expression1 contains ( period_expression2 | datetime_expression ) period( 1989-11-01, 1991-05-19 ) contains period( 1991-05-19, 1991-06-04 ) Resultado: false period( 1989-11-01, 1991-05-19 ) contains period( 1990-05-19, 1991-04-04 ) Resultado: true period( 1989-11-01, 1991-05-19 ) contains 1991-04-04 Resultado: true é igual a Retorna "true" se "period_expression1" e "period_expression2" tiverem os mesmos valores de início de período e de término de período. period_expression1 equals period_expression2 period( 1989-11-01, 1991-05-19 ) equals period( 1989-11-01, 1991-05-19 ) Resultado: true immediately precedes Retorna "true" se "period_expression1" immediately precedes "period_expression2"; ou seja, o valor de término do primeiro período for igual ao valor de início do segundo período. period_expression1 immediately precedes period_expression2 period( 1989-11-01, 1991-05-19 ) immediately precedes period( 1991-05-19, 1991-06-04 ) Resultado: true period( 1989-11-01, 1991-05-18 ) immediately precedes period( 1991-05-19, 1991-06-04 ) Resultado: false immediately succeeds Retorna "true" se "period_expression1" immediately succeeds "period_expression2"; ou seja, o valor de início do primeiro período for igual ao valor de término do segundo período. period_expression1 immediately succeeds period_expression2 period( 1991-05-19, 1994-01-10 ) immediately succeeds period( 1991-01-19, 1991-05-19 ) Resultado: true period( 1991-05-19, 1994-01-10 ) immediately succeeds period( 1991-01-20, 1991-05-18 ) Resultado: false overlaps Retorna "true" se "period_expression1" overlaps "period_expression2"; ou seja, tiver pelo menos um valor em comum. period_expression1 overlaps period_expression2 period( 1991-05-19, 1994-01-10 ) overlaps period( 1993-01-19, 1995-05-19 ) Resultado: true precedes Retorna "true" se "period_expression1" precedes "period_expression2"; ou seja, todos os valores contidos no primeiro período forem menores ou iguais ao valor de início do segundo período. period_expression1 precedes period_expression2 period( 1989-11-01, 1991-05-19 ) precedes period( 1991-05-19, 1991-06-04 ) Resultado: true period( 1989-11-01, 1991-05-18 ) precedes period( 1991-05-19, 1991-06-04 ) Resultado: true succeeds Retorna "true" se "period_expression1" succeeds "period_expression2"; ou seja, todos os valores contidos no primeiro período forem maiores ou iguais ao valor de término do segundo período. period_expression1 succeeds period_expression2 period( 1991-05-19, 1994-01-10 ) succeeds period( 1991-01-19, 1991-05-19 ) Resultado: true period( 1991-05-20, 1994-01-10 ) succeeds period( 1991-01-20, 1991-05-19 ) Resultado: true
Funções de data/hora comerciais Esta lista contém funções de negócios para execução de cálculos de data e hora. _add_seconds ( time_expression, integer_expression ) Retorna o horário ou a data/hora, dependendo do formato de "time_expression", resultante da inclusão de "integer_expression" segundos em "time_expression". Exemplo: _add_seconds ( 13:04:59 , 1 ) Resultado: 13:05:00 Exemplo: _add_seconds ( 2002-04-30 12:10:10.000, 1 ) Resultado: 2002-04-30 12:10:11.000 Exemplo: _add_seconds ( 2002-04-30 00:00:00.000, 1/100 ) Observe que o segundo argumento não é um número inteiro. Isso é suportado por algumas tecnologias de banco de dados e incrementa a parte que se refere à hora. Resultado: 2002-04-30 00:00:00.010 _add_minutes ( time_expression, integer_expression ) Retorna o horário ou a data/hora, dependendo do formato de "time_expression", resultante da inclusão de "integer_expression" minutos em "time_expression". Exemplo: _add_minutes ( 13:59:00 , 1 ) Resultado: 14:00:00 Exemplo: _add_minutes ( 2002-04-30 12:59:10.000, 1 ) Resultado: 2002-04-30 13:00:10.000 Exemplo: _add_minutes ( 2002-04-30 00:00:00.000, 1/60 ) Observe que o segundo argumento não é um número inteiro. Isso é suportado por algumas tecnologias de banco de dados e incrementa a parte que se refere à hora. Resultado: 2002-04-30 00:00:01.000 _add_hours ( time_expression, integer_expression ) Retorna o horário ou a data/hora, dependendo do formato de "time_expression", resultante da inclusão de "integer_expression" horas em "time_expression". Exemplo: _add_hours ( 13:59:00 , 1 ) Resultado: 14:59:00 Exemplo: _add_hours ( 2002-04-30 12:10:10.000, 1 ) Resultado: 2002-04-30 13:10:10.000, Exemplo: _add_hours ( 2002-04-30 00:00:00.000, 1/60 ) Observe que o segundo argumento não é um número inteiro. Isso é suportado por algumas tecnologias de banco de dados e incrementa a parte que se refere à hora. Resultado: 2002-04-30 00:01:00.000 _add_days ( date_expression; integer_expression ) Retorna a data ou data/hora, dependendo do formato da "date_expression", que resulta da adição de "integer_expression" dias a "date_expression". Exemplo: _add_days ( 2002-04-30 ; 1 ) Resultado: 2002-05-01 Exemplo: _add_days ( 2002-04-30 12:10:10.000; 1 ) Resultado: 2002-05-01 12:10:10;000 Exemplo: _add_days ( 2002-04-30 00:00:00.000; 1/24 ) Observe que o segundo argumento não é um número inteiro. Isso é suportado por algumas tecnologias de banco de dados e incrementa a parte que se refere à hora. Resultado: 2002-04-30 01:00:00.000 _add_months ( date_expression; integer_expression ) Inclui meses de "integer_expression" para "date_expression". Se o mês resultante tiver menos dias do que o mês componente, então o último dia do mês resultante é retornado. Em outros casos, o valor retornado tem o mesmo dia do mês componente que o "date_expression". Exemplo: _add_months ( 2012-04-15 , 3 ) Resultado: 2012-07-15 O resultado não é o último dia do mês resultante. Exemplo: _add_months ( 2012-02-29 , 1 ) Resultado: 2012-03-29 Use o function _last_of_month para retornar o último dia do mês. Exemplo: _last_of_month ( _add_months ( 2012-02-29 , 1 ) ) Resultado: 2012-03-31 O dia é ajustado para o último dia do mês resultante. Exemplo: _add_months ( 2012-01-31 , 1 ) Resultado: 2012-02-29 Incluindo em um registro de data e hora. Exemplo: _add_months ( 2002-04-30 12:10:10.000 , 1 ) Resultado: 2002-05-30 12:10:10,000 _add_years ( date_expression; integer_expression ) Inclui anos de "integer_expression" para "date_expression". Se o "date_expression" for 29 de fevereiro e o ano resultante não for um ano bissexto, então o dia resultante é configurado para 28 de fevereiro. Em outros casos, o valor retornado tem o mesmo dia e o mesmo mês que o "date_expression". Exemplo: _add_years ( 2012-04-15 , 1 ) Resultado: 2013-04-15 29 de fevereiro é ajustado para anos que não são bissextos. Exemplo: _add_years ( 2012-02-29 , 1 ) Resultado: 2013-02-28 Incluindo em um registro de data e hora. Exemplo: _add_years ( 2002-04-30 12:10:10.000 , 1 ) Resultado: 2003-04-30 12:10:10,000 _age ( date_expression ) Retorna um número obtido por meio da subtração de "date_expression" da data de hoje. O valor retornado tem a forma AAAAMMDD, em que AAAA representa o número de anos, MM representa o número de meses e DD representa o número de dias. Exemplo: _age ( 1990-04-30 ) (se a data de hoje for 2003-02-05) Resultado: 120906, ou seja, 12 anos, 9 meses e 6 dias. _date_to_int ( date_expression ) Retorna a representação de número inteiro de "date_expression". O valor retornado tem a forma AAAAMMDD, em que AAAA representa o número de anos, MM representa o número de meses e DD representa o número de dias. Exemplo: _date_to_int ( 2003-01-01 ) Resultado: 20030101 _day_of_week ( date_expression; integer ) Retorna o dia da semana ( entre 1 e 7), em que 1 é o primeiro dia da semana, conforme indicado pelo segundo parâmetro (entre 1 e 7; 1 sendo que 1 é segunda e 7; domingo). Observe que no padrão ISO 8601, uma semana começa com a segunda como dia 1. Exemplo: _day_of_week ( 2003-01-01 ; 1 ) Resultado: 3 _day_of_year ( date_expression ) Retorna o dia do ano (1 a 366) na "date_expression". Também conhecido como calendário juliano. Exemplo: _day_of_year ( 2003-03-01 ) Resultado: 61 _days_between ( date_expression1 ; date_expression2 ) Retorna números positivos ou negativos que representam o número de dias entre "date_expression1" e "date_expression2". Se "date_expression1" < "date_expression2"; o resultado será um número negativo. Exemplo: _days_between ( 2002-06-21 , 2002-04-30 ) Resultado: 52 Exemplo: _days_between ( 2002-04-30 ; 2002-06-21 ) Resultado: -52 _days_to_end_of_month ( date_expression ) Retorna números que representam o número de dias restantes no mês representado pela expressão "date_expression". Exemplo: _days_to_end_of_month ( 2002-04-20 14:30:22.123 ) Resultado: 10 _first_of_month ( date_expression ) Retorna uma data ou data/hora, dependendo do argumento, pela conversão da "date_expression" para uma data com o mesmo ano e mês, mas o dia configurado como 1. Exemplo: _first_of_month ( 2002-04-20 ) Resultado: 2002-04-01 Exemplo: _first_of_month ( 2002-04-20 12:10:10.000 ) Resultado: 2002-04-01 12:10:10,000 _last_of_month ( date_expression ) Retorna a data ou data/hora, dependendo do argumento, que é o último dia do mês representado por "date_expression". Exemplo: _last_of_month ( 2002-01-14 ) Resultado: 2002-01-31 Exemplo: _last_of_month ( 2002-01-14 12:10:10.000 ) Resultado: 2002-01-31 12:10:10,000 _make_timestamp ( integer_expression1; integer_expression2; integer_expression3 ) Retorna um registro de data e hora construído a partir de "integer_expression1" (o ano), "integer_expression2" (o mês) e "integer_expression" (o dia). O padrão da fração de tempo é 00:00:00.000. Exemplo: _make_timestamp ( 2002 ; 01 ; 14 ) Resultado: 2002-01-14 00:00:00.000 _months_between ( date_expression1; date_expression2 ) Retorna números inteiros positivos ou negativos que representam o número de meses entre "date_expression1" e "date_expression2". Se a "date_expression1" for anterior à "date_expression2", um número negativo será retornado. Exemplo: _months_between ( 2002-04-03 ; 2002-01-30 ) Resultado: 2 Exemplo: _months_between ( 2002-01-30 , 2002-04-03 ) Resultado: -2 _shift_timezone ( timestamp_value , from_time_zone , target_time_zone ) _shift_timezone ( timestamp_with_time_zone_value , target_time_zone ) Desloca um registro de data e hora de um fuso horário para outro fuso horário. Essa função aceita o Horário de Verão quando aplicável. Se o primeiro argumento for do tipo "registro de data e hora", então, o segundo e o terceiro argumentos representam os fuso horários "a partir de" e "destino", respectivamente. Se o primeiro argumento for do tipo "registro de data e hora com fuso horário", então, o fuso horário "a partir de" já estará implícito no primeiro argumento; portanto, o segundo argumento representará o fuso horário "destino". O tipo de dados do primeiro argumento também determinará o tipo de dados do valor de retorno. O segundo e terceiro argumentos são do tipo "sequência" e representam identificadores de fuso horário. Uma lista desses identificadores pode ser localizada abaixo. Nota: usar essa função causará processamento local. Exemplo: _shift_timezone( 2013-06-30 12:00:00 , 'America/New_York' , 'GMT' ) Resultado: 2013-06-30 16:00:00 Exemplo: _shift_timezone( 2013-11-30 12:00:00-05:00 , 'America/Vancouver' ) Resultado: 2013-11-30 09:00:00-08:00 Identificadores de fuso horário: GMT (GMT+00:00) Greenwich Mean Time Europe/Lisbon (GMT+00:00) Portugal Time (Lisbon) Europe/Amsterdam (GMT+01:00) Netherlands Time Europe/Paris (GMT+01:00) France Time Europe/Berlin (GMT+01:00) Germany Time Europe/Brussels (GMT+01:00) Belgium Time Europe/Rome (GMT+01:00) Italy Time Europe/Vienna (GMT+01:00) Austria Time Africa/Cairo (GMT+02:00) Egypt Time Africa/Johannesburg (GMT+02:00) South Africa Time Europe/Athens (GMT+02:00) Greece Time Africa/Addis_Ababa (GMT+03:00) Ethiopia Time Asia/Dubai (GMT+04:00) United Arab Emirates Time Asia/Karachi (GMT+05:00) Pakistan Time Asia/Calcutta (GMT+05:30) India Time Asia/Dhaka (GMT+06:00) Bangladesh Time Asia/Saigon (GMT+07:00) Vietnam Time Asia/Hong_Kong (GMT+08:00) Hong Kong SAR China Time Asia/Tokyo (GMT+09:00) Japan Time Australia/Darwin (GMT+09:30) Australia Time (Darwin) Australia/Sydney (GMT+10:00) Australia Time (Sydney) Pacific/Guadalcanal (GMT+11:00) Solomon Islands Time America/Argentina/San_Juan (GMT-03:00) Argentina Time (San Juan) America/Buenos_Aires (GMT-03:00) Argentina Time (Buenos Aires) America/Sao_Paulo (GMT-03:00) Brazil Time (Sao Paulo) America/St_Johns (GMT-03:30) Canada Time (St. John’s) America/Puerto_Rico (GMT-04:00) Puerto Rico Time America/New_York (GMT-05:00) United States Time (New York) America/Toronto (GMT-05:00) Canada Time (Toronto) America/Jamaica (GMT-05:00) Jamaica Time America/Chicago (GMT-06:00) United States Time (Chicago) America/Mexico_City (GMT-06:00) Mexico Time (Mexico City) America/Cambridge_Bay (GMT-07:00) Canada Time (Cambridge Bay) America/Edmonton (GMT-07:00) Canada Time (Edmonton) America/Yellowknife (GMT-07:00) Canada Time (Yellowknife) America/Denver (GMT-07:00) United States Time (Denver) America/Chihuahua (GMT-07:00) Mexico Time (Chihuahua) America/Los_Angeles (GMT-08:00) United States Time (Los Angeles) America/Tijuana (GMT-08:00) Mexico Time (Tijuana) America/Vancouver (GMT-08:00) Canada Time (Vancouver) America/Anchorage (GMT-09:00) United States Time (Anchorage) Pacific/Honolulu (GMT-10:00) United States Time (Honolulu) Pacific/Tahiti (GMT-10:00) French Polynesia Time (Tahiti) Pacific/Midway (GMT-11:00) U.S. Minor Outlying Islands Time (Midway) Pacific/Niue (GMT-11:00) Niue Time Um identificador de fuso horário customizado também pode ser usado, usando o formato GMT(+|-)HH:MM. Por exemplo, GMT-06:30 ou GMT+02:00. _week_of_year ( date_expression ) Retorna o número da semana do ano de "date_expression" de acordo com o padrão ISO 8601. Semana 1 do ano é a primeira semana do ano que contém uma quinta-feira, o que é equivalente à primeira semana que contém 4 de janeiro. Uma semana começa na segunda-feira (dia 1) e termina no domingo (dia 7). Exemplo: _week_of_year ( 2003-01-01 ) Resultado: 1 _years_between ( date_expression1; date_expression2 ) Retorna números inteiros positivos ou negativos que representam o número de anos entre "date_expression1" e "date_expression2". Se "date_expression1" < "date_expression2", um valor negativo será retornado. Exemplo: _years_between ( 2003-01-30 ; 2001-04-03 ) Resultado: 1 Exemplo: _years_between ( 2001-04-03 , 2003-01-30 ) Resultado: -1 _ymdint_between ( date_expression1 ; date_expression2 ) Retorna um número que representa a diferença entre "date_expression1" e "date_expression2". O valor retornado tem a forma AAAAMMDD, em que AAAA representa o número de anos, MM representa o número de meses e DD representa o número de dias. Exemplo: _ymdint_between ( 1990-04-30 ; 2003-02-05 ) Resultado: 120905, ou seja, 12 anos, 9 meses e 5 dias. _year ( date_expression ) Retorna o valor do campo de ano em "date_expression". Exemplo: _year ( 2003-03-01 ) Resultado: 2003 _month ( date_expression ) Retorna o valor do campo de mês em "date_expression". Exemplo: _month ( 2003-03-01 ) Resultado: 3 _day ( date_expression ) Retorna o valor do campo de dia em "date_expression". Exemplo: _day ( 2003-03-01 ) Resultado: 1 _hour ( date_expression ) Retorna o valor do campo de hora em "date_expression". Exemplo: _hour ( 2002-01-31 12:10:10.254 ) Resultado: 12 _minute ( date_expression ) Retorna o valor do campo de minuto em "date_expression". Exemplo: _minute ( 2002-01-31 12:10:10.254 ) Resultado: 10 _second ( date_expression ) Retorna o valor do segundo campo em "date_expression". Exemplo: _second ( 2002-01-31 12:10:10.254 ) Resultado: 10.254 _timezone_hour ( timestamp_with_time_zone_value ) _timezone_hour ( time_with_time_zone_value ) Retorna o valor do campo de hora do fuso horário na expressão. A expressão deve ser do tipo "registro de data e hora com fuso horário" ou "horário com fuso horário". Exemplo: _timezone_hour ( 2002-01-31 12:10:10.254-05:30 ) Resultado: -5 _timezone_minute ( timestamp_with_time_zone_value ) _timezone_minute ( time_with_time_zone_value ) Retorna o valor do campo de minuto de fuso horário na expressão. A expressão deve ser do tipo "registro de data e hora com fuso horário" ou "horário com fuso horário". Exemplo: _timezone_minute ( 2002-01-31 12:10:10.254-05:30 ) Resultado: -30 _start_of_day ([ date_expression ]) Retorna o início de "date_expression" ou o início de hoje como um registro de data e hora Exemplo: _start_of_day ( 2014-11-23 12:10:10.254 ) Resultado: 2014-11-23 00:00:00 Exemplo: _start_of_day () Resultado: 2016-01-01 00:00:00 _end_of_day ([ date_expression ]) Retorna o término de "date_expression" ou o término de hoje como um registro de data e hora. Exemplo: _end_of_day ( 2014-11-23 12:10:10.254 ) Resultado: 2014-11-23 23:59:59 Exemplo: _end_of_day () Resultado: 2016-01-01 23:59:59 _unix_timestamp ( date_expression ) Retorna o número de segundos desde 1970-01-01 00:00:00-00 para a "date_expression" especificada. Exemplo: _unix_timestamp ( 2014-11-23 ) Resultado: 1416718800 _from_unixtime ( integer_expression ) Retorna o horário UNIX especificado por "integer_expression" como um registro de data e hora com fuso horário. Exemplo: _from_unixtime (1417807335) Resultado: 2014-12-05 19:22:15+00:00
Funções de macro Esta lista contém funções que podem ser usadas dentro de uma macro. Uma macro pode conter uma ou mais funções. Uma macro é delimitada por um sinal de número (#) no início e no final. Todos os itens entre os sinais de número serão tratados como uma expressão de macro, usada no momento da execução. Para funções de macro que aceitam como argumentos expressões de registro de data e hora de tipos de dados com fuso horário, o formato aceito é 'aaaa-mm-dd hh:mm:ss[.ff]+hh:mm', em que os fracionais de segundos são opcionais e podem ser representados por 1 a 9 dígitos. O caractere 'T' também é aceito para substituir um espaço na separação da parte de dados da parte de horário. Além disso, o caractere 'Z' é aceito para substituir a parte de fuso horário '+hh:mm' e será processado internamente como '+00:00'. As funções de macro que retornarem expressões de tipo de dados de registro de data e hora com fuso horário retornam 9 dígitos para os segundos fracionais. A função de macro timestampMask() pode ser usada para fazer eliminação da saída, se necessário. Retorna o registro de data e hora com fuso horário (como uma sequência) resultante da inclusão do número de segundos "integer_expression" em "string_expression", em que "string_expression" representa um registro de data e hora com fuso horário. _add_seconds ( string_expression , integer_expression ) Exemplo: # _add_seconds ( '2005-11-01 12:00:00.000-05:00' , -1 ) # Resultado: 2005-11-01 11:59:59.000-05:00 Exemplo: # _add_seconds ( $current_timestamp , 1 ) # Resultado: 2005-11-01 12:00:01.000000000-05:00 Exemplo: # timestampMask ( _add_seconds ( $current_timestamp , 1 ) , 'hh:mm:ss' ) # Resultado: 12:00:01 Retorna o registro de data e hora com fuso horário (como uma sequência) que resulta da inclusão do número de minutos "integer_expression" em "string_expression", em que "string_expression" representa um registro de data e hora com fuso horário. _add_minutes ( string_expression , integer_expression ) Exemplo: # _add_minutes ( '2005-11-01 12:00:00.000-05:00' , -1 ) # Resultado: 2005-11-01 11:59:00.000-05:00 Exemplo: # _add_minutes ( $current_timestamp , 1 ) # Resultado: 2005-11-01 12:01:00.000000000-05:00 Exemplo: # timestampMask ( _add_minutes ( $current_timestamp , 1 ) , 'hh:mm:ss' ) # Resultado: 12:01:00 Retorna o registro de data e hora com fuso horário (como uma sequência) resultante da inclusão do número de horas "integer_expression" em "string_expression", em que "string_expression" representa um registro de data e hora com fuso horário. _add_hours ( string_expression , integer_expression ) Exemplo: # _add_hours ( '2005-11-01 12:00:00.000-05:00' , -1 ) # Resultado: 2005-11-01 13:00:00.000-05:00 Exemplo: # _add_hours ( $current_timestamp , 1 ) # Resultado: 2005-11-01 13:00:00.000000000-05:00 Exemplo: # timestampMask ( _add_hours ( $current_timestamp , 1 ) , 'hh:mm:ss' ) # Resultado: 13:00:00 Retorna o registro de data e hora com fuso horário (como sequência) resultante da adição de "integer_expression" número de dias a "string_expression", em que "string_expression" representa um registro de data e hora com fuso horário. Quando o primeiro argumento for uma data, especificado como uma sequência com o formato: aaaa-mm-dd, então, o valor de retorno será uma sequência formatada como uma data. _add_days ( string_expression ; integer_expression ) Exemplo: # _add_days ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Resultado: 2005-10-31 12:00:00.000000000-05:00 Exemplo: # _add_days ( $current_timestamp ; 1 ) # Resultado: 2005-11-02 12:00:00.000000000-05:00 Exemplo: # timestampMask ( _add_days ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Resultado: 2005-11-02 Exemplo: # _add_days( '2019-11-14' , 3 ) # Resultado: 2019-11-17 Retorna o registro de data e hora com fuso horário (como sequência) resultante da adição de "integer_expression" número de meses a "string_expression", em que "string_expression" representa um registro de data e hora com fuso horário. Quando o primeiro argumento for uma data, especificado como uma sequência com o formato: aaaa-mm-dd, então, o valor de retorno será uma sequência formatada como uma data. _add_months ( string_expression ; integer_expression ) Exemplo: # _add_months ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Resultado: 2005-10-01 12:00:00.000000000-05:00 Exemplo: # _add_months ( $current_timestamp ; 1 ) # Resultado: 2005-12-01 12:00:00.000000000-05:00 Exemplo: # timestampMask ( _add_months ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Resultado: 2005-12-01 Exemplo: # _add_months( '2019-11-14' , -1 ) # Resultado: 2019-10-14 Retorna o registro de data e hora com fuso horário (como sequência) resultante da adição de "integer_expression" número de anos a "string_expression", em que "string_expression" representa um registro de data e hora com fuso horário. Quando o primeiro argumento for uma data, especificado como uma sequência com o formato: aaaa-mm-dd, então, o valor de retorno será uma sequência formatada como uma data. _add_years ( string_expression ; integer_expression ) Exemplo: # _add_years ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Resultado: 2004-11-01 12:00:00.000000000-05:00 Exemplo: # _add_years ( $current_timestamp ; 1 ) # Resultado: 2006-11-01 12:00:00.000000000-05:00 Exemplo: # timestampMask ( _add_years ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Resultado: 2006-11-01 Exemplo: # _add_years( '2019-11-14' , -2 ) # Resultado: 2017-11-14 _first_of_month ( string_expression ) Retorna um registro de data e hora com fuso horário (como sequência) convertendo o valor do dia de "string_expression" para 1, em que "string_expression" é um registro de data e hora com fuso horário. Exemplo: # _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Resultado: 2005-11-01 12:00:00.000000000-05:00 Exemplo: # timestampMask ( _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'yyyymmdd' ) # Resultado: 20051101 _last_of_month ( string_expression ) Retorna um registro de data e hora com fuso horário (como sequência) que é o último dia do mês representado por "string_expression", em que "string_expression" é um registro de data e hora com fuso horário. Exemplo: # _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Resultado: 2005-11-30 12:00:00.000000000-05:00 Exemplo: # timestampMask ( _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'yyyy-mm-dd' ) # Resultado: 2005-11-30 modelj ( 'identifier' [ , 'model_search_path' [ , 'options' ] ] ) Retorna uma parte do modelo de metadados no formato de json. O modelo atual será usado quando o 'model_search_path' não for especificado. O argumento 'options' pode ser configurado para 'limpeza'. Isso muda algumas partes do resultado para valores fixos (úteis para teste). sq ( modelj ( '[gosales].[country].[country]' ) Circunda "string_expression" com colchetes. sb ( string_expression ) Exemplo: # sb ( 'abc' ) # Resultado': [abc] Circunda "string_expression" com aspas simples. sq ( string_expression ) Exemplo: # sq ( 'zero' ) # Resultado: 'zero' Circunda "string_expression" com aspas. dq ( string_expression ) Exemplo: # dq ( 'zero' ) # Resultado: zero Use as informações de identidade do usuário autenticado atual para procurar valores no mapeamento de parâmetro especificado. Cada componente individual da identidade do usuário (nome de conta, nomes de grupo, nomes de função) é usando como uma chave no mapa. A lista exclusiva de valores recuperada do mapeamento de parâmetro é retornada como uma sequência, na qual cada valor é colocado entre aspas simples e em que vários valores são separados por vírgulas. CSVIdentityName ( %parameter_map_name [ ; separator_string ] ) Exemplo: # CSVIdentityName ( %security_clearance_level_map ) # Resultado: 'level_500' ; 'level_501' ; 'level_700' Retorna os componentes de identidade do usuário (nome de conta, nomes de grupo, nomes de função) como uma lista de strings. A lista exclusiva de valores é retornada como uma sequência, onde cada valor é colocado entre aspas simples e onde vários valores são separados por vírgulas. CSVIdentityNameList ( [ separator_string ] ) Exemplo: # CSVIdentityNameList ( ) # Resultado: 'Todos' , 'Administradores de Relatório' , 'Usuário de Consulta' Retorna o passaporte Cognos® Access Manager. CAMPassport ( ) Exemplo: # CAMPassport ( ) # Resultado: 111:98812d62-4fd4-037b-4354-26414cf7ebef:3677162321 Retorna os componentes da Cognos® Access Manager ID (CAMID) do usuário, como nome de conta, nomes de grupo ou nomes de função, como uma lista de valores separados por vírgulas. CAMIDList ( [ separator_string ] ) Exemplo: #CAMIDList ( ) # Resultado: CAMID ( "::Everyone" ) ; CAMID ( ":Authors" ) ; CAMID ( ":Query Users" ) ; CAMID ( ":Consumers" ) ; CAMID ( ":Metrics Authors" ) Retorna uma matriz das Cognos® Access Manager IDs (CAMIDs) do usuário com base no tipo de identidade (conta, grupo ou função). É possível utilizar CAMIDListForType com as funções de macro csv ou junção. CAMIDListForType ( tipo de identidade ) Exemplo: [qs].[userRole] in ( # csv ( CAMIDListForType ( 'role' ) ) # ) Resultado: [qs].[userRole] em ( 'CAMID ( "::Administradores do sistema" ) ' , 'CAMID ( ":Autores" )' ) Concatena duas strings. valor1 + valor2 Exemplo: # '{ ' + $runLocale + ' }' # Resultado: {en-us} Separa os caracteres iniciais do primeiro argumento. O segundo argumento opcional define o conjunto de caracteres a separar. Por padrão, essa função separa espaço em branco (ou seja, espaço, guia, retorno de linha e feed de linha). lstrip ( string_expression [ ; set_of_characters ] ) Exemplo: # sq( lstrip ( ' abc ' ) ) # Resultado: 'abc ' Exemplo: # lstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Resultado: 53.2100 Retorna o valor do parâmetro "parameterName" se ele estiver definido. O valor "defaultText" será retornado se "parameterName" não existir. Quando "datatype" for configurado como "string", o valor do resultado será cercado por aspas simples. O uso desta função não causará uma exceção de parâmetro ausente. ParamValue ( parameterName [ , defaultText [, datatype ] ] ) Exemplo: # ParamValue ( 'p_country' ) # Resultado: 'Canada' - p_country está configurado Resultado: null - p_country não é um parâmetro conhecido Resultado: null - p_country é usado em um prompt opcional e não está configurado Exemplo: # ParamValue ( 'p_country' , 'Netherlands' ) # Resultado: 'Canada' - p_country está configurado Resultado: 'Netherlands' - p_country não é um parâmetro conhecido Resultado: 'Netherlands' - p_country é usado em um prompt opcional e não está configurado Exemplo: # ParamValue ( 'p_country', ' cast ( null as varchar(20)) ' , 'token' ) # Resultado: 'Canada' - p_country está configurado Resultado: cast ( null as varchar(20)) - p_country não é um parâmetro conhecido Resultado: cast ( null as varchar(20)) - p_country é usado em um prompt opcional e não está configurado Solicita que o usuário forneça um único valor ou membro. Somente prompt_name é necessário. O tipo de dados é padronizado como 'string' quando não é especificado. O prompt é opcional quando defaultText for especificado. O texto precederá o valor, quando especificado. É possível especificar "Item_de_consulta" para aproveitar as propriedades de informações do prompt do "item_de_consulta". O texto_final será acrescentado ao valor, quando especificado. Quando o tipo de dados é 'memberuniquename', um prompt de membro de seleção única é criado. Uma boa prática é fornecer um valor padrão, como um argumento 3rd. O valor padrão deve ser um nome exclusivo de membro válido; ele também pode ser um alias que referencia um nome exclusivo de membro como no Report Studio. prompt ( prompt_name ; datatype ; defaultText ; texto ; queryItem ; trailing_text ) Exemplo: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > #prompt ( 'Iniciando o Código do País' ; 'número inteiro' ; '10' ) # Resultado: select. . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > 10 Exemplo: [gosales].[PAÍS].[COUNTRY] = # prompt ( 'countryPrompt' , 'string' , '''Canada''' ) # Resultado [gosales].[PAÍS].[PAÍS] = 'Canada' Exemplo: conjunto ( #prompt ('myProduct', 'memberuniquename', '[Equipamento de camping]', '', '[Vendas].[Produto].[Produto].[Linha de produto]')#) Resultado: set([Vendas].[Produto].[Produto].[Linha de produto]->[todos].[1]) O parâmetro defaultText deve ser especificado de maneira que seja literalmente válido no contexto da macro, pois não ocorre nenhuma formatação nesse valor. A sequência padrão 'Canada' no Exemplo 2 é especificada como sequência usando aspas simples, onde as aspas simples embutidas são duplicadas, daí as 3 etapas. Isso resulta na exibição correta da sequência dentro de aspas simples na expressão. Como regra geral para a sequência tipo de dado, é necessário sempre especificar "defaultText" como na observação anterior, exceto no contexto de um parâmetro de procedimento armazenado. Para o defaultText dos tipos 'date' ou 'datetime', um formato especial deve ser usado no contexto de SQL. Os exemplos desses formatos são 'DATE ''2001-12-25''' e 'DATETIME ''2001-12-25 12:00:00'''. Em todos os outros contextos, utilize data e data/hora sem a palavra chave e as aspas simples (por exemplo '2001-12-25'). Solicita que o usuário forneça um ou mais valores ou membros. Somente prompt_name é necessário. O tipo de dados é padronizado como 'string' quando não é especificado. O prompt é opcional quando defaultText for especificado. O texto precederá a lista de valores, quando especificado. É possível especificar "Item_de_consulta" para aproveitar as propriedades de informações do prompt do "item_de_consulta". O texto_final será acrescentado à lista de valores, quando especificado. Quando o tipo de dados é 'memberuniquename', um prompt de membro de seleção múltipla é criado. Uma boa prática é fornecer um valor padrão, como um argumento 3rd. O valor padrão deve ser um nome exclusivo de membro válido; ele também pode ser um alias que referencia um nome exclusivo de membro como no Report Studio. promptmany ( prompt_name ; tipo de dados ; Texto padrão ; texto ; Item de consulta ; trailing_text ) Exemplo: select . . . where COUNTRY_MULTILINGUAL.COUNTRY in ( # promptmany ( 'Nome do País' ) # ) Resultado: select. . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canadá' ; 'Os Países Baixos' ; 'Rússia' ) Exemplo: select . . . from gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL ; gosales.gosales.dbo.COUNTRY XX where COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE # promptmany ( 'Códigos de Países Selecionados' ; 'integer' ; ' ' ; ' and COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( ' ; '' ; ' ) ' ) # Resultado: select. . . from gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL ; gosales.gosales.dbo.COUNTRY XX where COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE and COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canadá' ; 'Os Países Baixos' ; 'Rússia' ) Exemplo: conjunto ( #promptmany ('myProduct', 'memberuniquename', '[Equipamento de Camping]', '', '[Vendas].[Produto].[Produto].[Linha de produto]')#) Resultado: set([Vendas].[Produto].[Produto].[Linha de produto]->[todos].[1]; [Vendas].[Produto].[Produto].[Linha de produto]->[todos].[2]) Executar uma consulta para uma única coluna e retornar o valor (apenas) na primeira linha. O resultado não está formatado, certifique-se de cercar a chamada com sq (), conforme necessário. queryValue ( value_expression [ , filter_expression ] ) Exemplo: # sq ( queryValue ( 'TheCalendar.TheWeekdayName' , 'TheCalendar.TheDate = 2018-06-06' ) ) # Resultado: 'quarta-feira' Constrói uma matriz a partir da lista de parâmetros. matriz ( string_expression|array_expression { ; string_expression|array_expression } ) Exemplo: # csv ( array ( 'a1' ; array ( 'x1' ; 'x2' ) ; 'a2' ) ) # Resultado: 'a1' ; 'x1' ; 'x2' ; 'a2' Constrói uma sequência com elementos da matriz em que os valores são separados por vírgulas. Como alternativa, as aspas e o separador podem ser especificados. O separador padrão é uma vírgula ( ; ) e o caractere aspas simples padrão é uma aspa simples ( ' ). csv ( array_expression [ ; separador_string [ ; aspa_simples_string ] ] ) Exemplo: # sq ( csv ( array ( 'a1' , 'a2' ) ) ) # Resultado: 'a1' ; 'a2' Obtém uma entrada do arquivo de configuração do IBM® Cognos®. O force_decode_flag é opcional e deve ser um de: 'true' , '1', 1 , 'false', '0', 0. O padrão é 'false'. Em casos excepcionais o force_decode_flag deve ser configurado para true. Quando o force_decode_flag for configurado para true e, em seguida, para entradas configuradas na configuração do IBM® Cognos® via Propriedades avançadas, o valor do texto simples da entrada de configuração será retornado. Para entradas não identificadas nas Propriedades avançadas, uma sequência de caracteres vazia é retornada, independentemente da presença de informações criptografadas. A entrada nas Propriedades avançadas é qs.getConfigurationEntry.1 e também é uma lista de nomes separada por ponto e vírgula, por padrão, essa lista de nomes é vazia e chamadas para essa função com a sinalização configurada para true retornarão uma sequência vazia. getConfigurationEntry ( entry_string ; force_decode_flag ) Exemplo: # getConfigurationEntry ( 'serverLocale'  ) # Resultado: en Retorna uma entrada do arquivo de recursos. O primeiro argumento é o ID do recurso encontrado no arquivo de recursos. O segundo argumento opcional é o nome do arquivo de recursos sem o sufixo local (por exemplo, 'mfwa4j' para o arquivo de mensagens 'mfwa4j_en.properties'). O arquivo de recursos padrão é 'xqejavamsgs'. O terceiro argumento opcional é o local, padronizado para'en'. getResourceString ( resource_id_string [, resource_file_string [ , locale_string ] ] ) Exemplo: # getResourceString ( 'XQE_BIN_binLow' ) # Resultado: XQE-BIN-0001 menor que %1 Exemplo: # getResourceString ( 'MFW_UT_INTERNAL_ERROR' , 'mfw4j' , 'en' ) # Resultado: MFW-UT-1002 Um problema interno ocorreu. Entre em contato com o administrador do sistema. Procura e apresenta os elementos de uma matriz que correspondem ao padrão especificado em "pattern_string". Os únicos metacaracteres suportados são: ^ (começo da palavra), $ (final da palavra), ! (sinal negativo - somente suportado como primeiro caractere). grep ( pattern_string ; array_expression ) Exemplo: # sq ( csv ( grep ( 's' , array ( 'as', 'an', 'arts' ) ) ) ) # Resultado: 'as'; 'arts' Exemplo: # sq ( csv ( grep ( '^g' , array ( 'group', 'golf' ) ) ) ) # Resultado: 'group', 'golf' Exemplo: # sq ( csv ( grep ( 's$' , array ( 'oranges', 'mangoes' ) ) ) ) # Resultado: 'oranges', 'mangoes' Exemplo: # sq ( csv ( grep ( '!o' , array ( 'oranges', 'apples' ) ) ) ) # Resultado: 'apples' Localize o deslocamento em 'str' no qual 'substr' foi localizado. O valor -1 é retornado quando 'substr' não é localizado. Também é possível fornecer uma 'compensação' opcional para iniciar a procura. O primeiro argumento 'str' também pode ser uma array_expression; nesse caso, a função é aplicada a cada elemento de matriz e o resultado da função é uma matriz de valores. índice( str , substr [ , offset ] ) # index ( 'The black horse jumped over the black sheep.', 'black' ) # Resultado: 4 # index ( 'The black horse jumped over the black sheep.', 'black', 10 ) # Resultado: 32 # index ( 'The black horse jumped over the black sheep.', 'green' ) # Resultado: -1 # sq ( join ( ' | ', index ( array ('black' , 'red', 'green' ) , 'e' ) ) ) # Resultado: -1 | 1 | 2 Associa os elementos de uma matriz usando "string_de_separação". join ( separador_string ; array_expression ) Exemplo: # sq ( join ( ' | | ' ; array ( 'as'; 'an'; 'arts' ) ) ) # Resultado: 'as | | an | | arts' Calcula o número de caracteres em string_expression. Se o argumento for uma array_expression, o resultado será uma matriz de valores e cada entrada será o número de caracteres em cada um dos elementos array_expression. comprimento ( string_expression | array_expression ) comprimento ( 'abcdef' ) Resultado: 6 join ( '--', length ( array ( 'abcdef' , 'xyz' ) ) ) Resultado: 6--3 Localize o último deslocamento em 'str' no qual 'substr' foi localizado. Essa função é chamada de índice reverso e é possível visualizá-la como se iniciasse a varredura a partir do final da sequência. O valor -1 é retornado quando 'substr' não é localizado. Também é possível fornecer uma 'compensação' opcional para terminar a procura. O primeiro argumento 'str' pode ser uma array_expression; nesse caso, a função é aplicada a cada elemento de matriz e o resultado da função é uma matriz de valores. rindex ( str , substr [ , offset ] ) # rindex ( 'The black horse jumped over the black sheep.', 'black' ) # Resultado: 32 # rindex ( 'The black horse jumped over the black sheep.', 'black', 10 ) # Resultado: 4 # rindex ( 'The black horse jumped over the black sheep.', 'green' ) # Resultado: -1 # sq ( join ( ' | ', rindex ( array ('black' , 'red', 'green' ) , 'e' ) ) ) # Resultado: -1 | 1 | 3 Separa os caracteres finais do primeiro argumento. O segundo argumento opcional define o conjunto de caracteres a separar. Por padrão, essa função separa espaço em branco (ou seja, espaço, guia, retorno de linha e feed de linha). rstrip ( string_expression [ ; set_of_characters ] ) Exemplo: # sq( rstrip ( ' abc ' ) ) # Resultado: ' abc' Exemplo: # rstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Resultado: 0053.21 Classifica os elementos da matriz em ordem alfabética. Duplicatas são mantidas. sort ( array_expression ) Exemplo: # csv ( sort ( array ( 's3'; 'a'; 'x' ) ) ) # Resultado: 'a'; 's3'; 'x' Divide uma sequência ou os elementos de uma sequência da matriz em elementos separados. split ( pattern_string; string_expression|array_expression ) Exemplo: # sq ( csv ( split ( '::', 'ab=c::de=f::gh=i' ) ) ) # Resultado: 'ab=c' ; 'de=f'; 'gh=i' Exemplo: # sq ( csv ( split ( '=' , split ( '::', 'ab=c::de=f::gh=i' ) ) ) ) # Resultado: 'ab' ; 'c' ; 'de' ; 'f'; 'gh' ; 'i' Separa os caracteres iniciais e finais do primeiro argumento. O segundo argumento opcional define o conjunto de caracteres a separar. Por padrão, essa função separa espaço em branco (ou seja, espaço, guia, retorno de linha e feed de linha). strip ( string_expression [ ; set_of_characters ] ) Exemplo: # sq( strip ( ' abc ' ) ) # Resultado: 'abc' Exemplo: # strip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Resultado: 53.21 Procura um padrão em uma sequência ou nos elementos de uma sequência da matriz e substitui a primeira ocorrência de "pattern_string" por "replacement_string". Os únicos metacaracteres suportados são: ^ (começo da palavra), $ (final da palavra) substitute ( pattern_string; replacement_string; string_expression|array_expression ) Exemplo: #sq ( substitute ( '^cn='; '***'; 'cn=help' ) )# Resultado: ***help' Exemplo: # csv ( substitute ( '^cn='; '***'; array ( 'cn=help' ; 'acn=5' ) ) ) # Resultado: '***help' ; 'acn=5' Exemplo: # csv ( substitute ( 'cn='; ''; array ( 'cn=help' ; 'acn=5' ) ) ) # Resultado: 'help' ; 'a5' Exemplo: #sq ( substitute ( 'help$', '***', 'cn=help' ) )# Resultado: 'cn=***' Extrai uma parte de 'string_expression' começando em 'start_offset'. É possível especificar que o número de caracteres de 'comprimento' deve ser extraído. Se 'comprimento' não for especificado, o resultado será até o final de 'string_expression2'. O primeiro argumento também pode ser uma array_expression; nesse caso, a função é aplicada a cada elemento de matriz e o resultado da função é uma matriz de sequências. substr ( string_expression , start_offset [ , length ] ) substr ( 'The horse is black.', 0, 3 ) Resultado: The substr ( 'The horse is black.', 4 ) Resultado: o cavalo é preto. substr ( 'The horse is black', index ('The horse is black.' , 'green' ) ) Resultado: o cavalo é preto. join ( ' | ', substr ( array ('black' , 'red', 'green' ) , 2, 2 ) ) Resultado: ac | d | en substr ('over the moon', -2, 4) Resultados em um erro: o segundo argumento da função 'substr' deve ser maior ou igual a -1.' . Retorna "string_expression1"; representando um registro de data e hora com fuso horário, ajustado até o formato especificado em "string_expression2". O formato na "string_expression2" deve ser um dos seguintes valores: 'aaaa', 'mm', 'dd', 'aaaa-mm', 'aaaamm', 'aaaa-mm-dd', 'aaaammdd', 'aaaa-mm-dd hh:mm:ss', 'aaaa-mm-dd hh:mm:ss+hh:mm', 'aaaa-mm-dd hh:mm:ss.ff3', 'aaaa-mm-dd hh:mm:ss.ff3+hh:mm', 'aaaa-mm-ddThh:mm:ss', 'aaaa-mm-ddThh:mm:ss+hh:mm', 'aaaa-mm-ddThh:mm:ss.ff3+hh:mm' ou 'aaaa-mm-ddThh:mm:ss.ff3+hh:mm'. As funções de macro que retornam uma representação de sequência de um registro de data e hora com fuso horário exibem, por padrão, uma precisão de 9 dígitos para a parte fracional dos segundos. As opções de formato permitem fazer a eliminação desse número para uma precisão de 3 ou 0. timestampMask ( string_expression1 ; string_expression2 ) Exemplo: # timestampMask ( $current_timestamp ; 'aaaa-dd-mm' ) # Resultado: 2005-11-01 Exemplo: # timestampMask (  '2005-11-01 12:00:00.000-05:00' ; 'aaaa-mm-dd hh:mm:ss+hh:mm' ) # Resultado: 01.11.05 12:00:00.-05:00 Exemplo: # timestampMask (  '2005-11-01 12:00:00.123456789-05:00' ; 'aaaa-mm-ddThh:mm:ss+hh:mm.ff3+hh:mm' ) # Resultado: 01-11-051T12:00:00.123-05:00 Retorna a sequência que representa um registro de data e hora com fuso horário ajustando "string_expression" ao fuso horário do sistema operacional. Observe que a função de macro timestampMask() pode ser usada para fazer eliminação da saída. toLocal ( string_expression ) Exemplo: # toLocal ( '2005-11-01 17:00:00.000-00:00' ) # em que fuso horário local de S.O. é -05:00 Resultado: 2005-11-01 12:00:00.000000000-05:00 Exemplo: # timestampMask ( toLocal ( '2005-11-01 17:00:00.000-00:00' ) ; 'aaaa-mm-dd hh:mm:ss+hh:mm' ) # em que fuso horário local é -05:00 Resultado: 01.11.05 12:00:00.-05:00 Exemplo: # toLocal ( '2005-11-01 13:30:00.000-03:30' ) # em que fuso horário local de S.O. é -05:00 Resultado: 2005-11-01 12:00:00.000000000-05:00 Retorna a sequência "string_expression" com todos os caracteres convertidos para letras minúsculas usando as regras do código de idioma "locale_string". Se nenhum código de idioma for especificado, o código de idioma 'en' é usado. tolower ( string_expression [ ; locale_string ] ) Exemplo: # tolower ( 'ABC' ) # Resultado: abc Exemplo: # tolower ( 'ABC' ; 'fr' ) # Resultado: abc Retorna a sequência "string_expression" com todos os caracteres convertidos para letras maiúsculas, usando as regras do código de idioma definido em "locale_string". Se "locale_string" não for especificado, o código de idioma 'en' é usado. toupper ( string_expression [ ; locale_string ] ) Exemplo: # toupper ( 'abc' ) # Resultado: ABC Exemplo: # toupper ( 'abc' ; 'fr' ) # Resultado: ABC Retorna a sequência que representa um registro de data e hora com fuso horário resultante do ajuste de "string_expression" ao fuso horário de UTC de referência do ponto zero, também conhecido como hora GMT. Observe que a função de macro timestampMask() pode ser usada para fazer eliminação da saída. toUTC ( string_expression ) Exemplo: # toUTC ( '2005-11-01 12:00:00.000-05:00' ) # Resultado: 2005-11-01 17:00:00.000000000-00:00 Exemplo: # timestampMask( toUTC ( '2005-11-01 12:00:00.000-05:00' ) ; 'aaaa-mm-dd hh:mm:ss.ff3+hh:mm' ) # Resultado: 2005-11-01 17:00:00.000-00:00 Exemplo: # toUTC ( $current_timestamp ) # Resultado: 2005-11-01 17:00:00.000000000-00:00 Remove entradas duplicadas da matriz. A ordem dos elementos é mantida. unique ( array_expression ) # csv ( unique ( array ( 's3'; 'a'; 's3'; 'x' ) ) ) # Resultado: 's3'; 'a'; 'x' Codifica em URL o argumento passado. Esta função é útil na especificação de sequências de conexões XML. urlencode ( prompt ( 'userValue' ) ) urlencode ( prompt ( 'algum_val' ) ) %27valor_de_Teste%27 case simples Essa construção de macro é o modelo para um caso simples, incluindo funções de case, when, then, else e end. Observe que esta macro construção somente é suportada no modo DQM. CASE <expressão> WHEN <literal> THEN <expressão> [ELSE <expressão>] END Exemplo: #CASE prompt('pDateRange';'token') WHEN 'Current Week' THEN '[PR Current Week]' ELSE '[PR Prior Week]' END# Resultado: [PR Current Week]
Funções de bloqueio Esta lista contém funções utilizadas para acessar membros de um conjunto, geralmente no contexto do Analysis Studio. Retorna os primeiros membros encontrados no conjunto até "numeric_expression_máxima" + "numeric_expression_estouro". Se o valor de "numeric_expression_máxima" + "numeric_expression_estouro" for excedido, somente o número máximo de membros será retornado. Para um conjunto que possui apenas alguns membros a mais que a numeric_expression_máxima especificada, a numeric_expression_estouro permite que um pequeno conjunto de membros adicionais seja incluído. Se o conjunto possuir mais membros do que o permitido pelo estouro, apenas numeric_expression_máxima será retornada. _firstFromSet ( set_expression ; numeric_expression_maximum ; numeric_expression_overflow ) _firstFromSet ( [great_outdoors_company].[Produtos].[Produtos].[Linha de produto] , 2 , 8 ) Resultado: retorna os cinco membros no conjunto da linha de produtos. Os primeiros dois membros são retornados dentro do máximo permitido e os três membros seguintes são retornados como estouro. Equipamento de Acampamento Equipamento de Golfe Equipamento de Alpinismo Proteção para Atividades ao Ar Livre Acessórios Pessoais _firstFromSet ( [great_outdoors_company].[Produtos].[Produtos].[Linha de produto] , 2 , 2 ) Resultado: Equipamento de acampamento, Equipamento de golfe Retorna o conjunto contendo "member_expression" quando o tamanho da "set_expression" for maior que "numeric_expression"; isto é, um novo membro será gerado se o número de membros na "set_expression" for maior que o especificado na "numeric_expression". _remainderSet ( member_expression; set_expression ; numeric_expression ) _remainderSet ( membro ( agregação ( currentMeasure dentro do conjunto [great_outdoors_company].[Produtos].[Produtos].[Linha de produto] ) , 'Product Aggregate' , 'Product Aggregate' , [great_outdoors_company].[Produtos].[Produtos] ) , [great_outdoors_company].[Produtos].[Produtos].[Linha de produto] , 1 ) Resultado: Quantidade vendida por produto agregado