Funciones específicas de proveedor Constantes Una constante es un valor fijo que se puede utilizar en una expresión. Operadores Los operadores especifican lo que les sucede a los valores situados en uno de los dos lados del operador. Los operadores son similares a las funciones en el hecho de que manipulan elementos de datos y devuelven un resultado. fecha Inserta la fecha actual del sistema. fecha-hora Inserta la fecha y hora actuales del sistema. hora con huso horario Inserta la hora cero con el huso horario. indicación de fecha y hora con huso horario Inserta un ejemplo de indicación de fecha y hora con huso horario. Inserta un valor false. intervalo Inserta un intervalo cero: 000 00:00:00.000. intervalo de año Inserta un intervalo de año cero: año 0. intervalo de mes Inserta un intervalo de mes cero: mes 0. intervalo de año a mes Inserta un intervalo de año a mes cero: año a mes 0000-00. intervalo de día Inserta un intervalo de día cero: día 0. intervalo de hora Inserta un intervalo de hora cero: hora 0. intervalo de minuto Inserta un intervalo de minuto cero: minuto 0. intervalo de segundo Inserta un intervalo de segundo cero: segundo 0. intervalo de día a hora Inserta un intervalo de día a hora cero: día a hora 0 00. intervalo de día a minuto Inserta un intervalo de día a minuto cero: día a minuto 0 00:00. intervalo de día a segundo Inserta un intervalo de día a segundo cero: día a segundo 0 00:00:00.000000000. intervalo de hora a minuto Inserta un intervalo de hora a minuto cero: hora a minuto 00:00. intervalo de hora a segundo Inserta un intervalo de hora a segundo cero: hora a segundo 00:00:00.000000000. intervalo de minuto a segundo Inserta un intervalo de minuto a segundo cero: minuto a segundo 00:00.000000000. Inserta un valor "nulo" si no se cumplen las condiciones de la expresión. número Inserta el número 0, que se puede sustituir por un nuevo valor numérico. cadena Inserta una cadena vacía con dos comillas simples entre las que se puede escribir una cadena. Hora Inserta la hora actual del sistema. Inserta un valor true.
Identifica el inicio de una expresión. ( expresión ) Identifica el final de una expresión. ( expresión ) Multiplica dos valores numéricos. valor1 * valor2 , Separa componentes de la expresión. expresión ( parámetro1; parámetro2 ) Divide dos valores numéricos. valor1 / valor2 Concatena, o realiza uniones, de cadenas. cadena1 || cadena2 Añade dos valores numéricos. valor1 + valor2 Resta dos valores numéricos o niega un valor numérico. valor1 - valor2 o - valor Compara los valores que "valor1" representa con "valor2" y recupera los valores menores que "valor2". valor1 < valor2 Compara los valores representados por "valor1" con los valores de "valor2" y recupera los valores iguales o menores que "valor2". valor1 <= valor2 Compara los valores representados por "valor1" con los valores de "valor2" y recupera los valores que no son iguales a "valor2". valor1 <> valor2 Compara los valores representados por "valor1" con los valores de "valor2" y recupera los valores que son iguales a "valor2". valor1 = valor2 Compara los valores representados por "valor1" con los valores de "valor2" y recupera los valores mayores que "valor2". valor1 > valor2 Separa los componentes en una expresión de miembros literales. [espacio de nombres].[dimensión].[jerarquía].[nivel]->[L1] Compara los valores representados por "valor1" con los valores de "valor2" y recupera los valores iguales o mayores que "valor2". valor1 >= valor2 Devuelve el valor "true" si las condiciones de ambos lados de la expresión son verdaderas. argumento1 y argumento2 Funciona con las expresiones de resumen para definir el ámbito que debe ajustarse tomando como base las columnas de agrupamiento en la consulta. El ámbito depende del contexto. aggregate_function ( expresión AUTO ) Determina si un valor está comprendido en un rango dado. expresión between valor1 y valor2 Ejemplo: [Ingresos] between 200 and 300 Resultado: Devuelve el número de resultados con ingresos entre 200 y 300. Revenue Between ---- ---- $332.06 false $230.55 true $107.94 false Funciona con when, then, else y end. Case identifica el inicio de una situación específica, en la que se definen acciones when, then y else. case expresión { when expresión then expresión } [ else expresión ] end Determina si "cadena1" contiene "cadena2". Esta sintaxis soporta ambos metacaracteres: El signo de porcentaje (%) representa cero, uno o varios caracteres, y el signo de subrayado (_) representa cualquier carácter. La palabra clave LITERAL indica cómo se interpretan '%' y '_'. Cuando está presente la palabra clave LITERAL, '%' y '_' no se tratan como metacaracteres (vea los ejemplos 3 y 5). Por el contrario, si la palabra clave LITERAL está ausente, '%' and '_' se comportan como metacaracteres (vea los ejemplos 1, 2 y 4). cadena1 contiene [LITERAL] cadena2 Ejemplo 1: [PRODUCT_LINE] contiene 'puerta' Resultado 1: Equipo de exterior Ejemplo 2: [PRODUCT_LINE] contiene 'Golf%' Resultado 2: Equipo de golf Ejemplo 3: [PRODUCT_LINE] contiene el literal 'Golf%' Resultado 3: Golf% Ejemplo 4: [PRODUCT_LINE] contiene 'Año_Actual%' Resultado 4: Precio de año actual, Precio de año actual%, Precio de Año_Actual%. Ejemplo 5: [PRODUCT_LINE] contiene el literal 'Año_Actual%' Resultado 5: Año_Actual%. Palabra clave que puede utilizarse como primer argumento de las funciones de resumen de los miembros. Esta función aparece en el informe de ejemplo Ingresos totales por país del paquete Almacén de datos VA (consulta). aggregate_function ( currentMeasure within set expression ) current_date Devuelve la fecha actual de la base de datos. current_date Funciona con la construcción lookup. lookup (....) in (....) default (....) Palabra clave que se utiliza en una expresión de agregado para incluir sólo las apariciones distintas de los valores. Consulte también la función unique. dataItem distinct Ejemplo: count ( distinct [CantidadDetalleOrden] ) Resultado: 1704 Funciona con las construcciones if o case. Si la condición if o la expresión case no son verdaderas, se utiliza la expresión else. Esta función aparece en el informe de ejemplo 10 mejores minoristas para 2005 del paquete Almacén de datos VA (análisis). if ( condición ) then .... else ( expresión ) , or case .... else ( expresión ) end Indica el final de una construcción case o when. case .... end Determina si "cadena1" termina con "cadena2". Esta sintaxis soporta ambos metacaracteres: El signo de porcentaje (%) representa cero, uno o varios caracteres, y el signo de subrayado (_) representa cualquier carácter. La palabra clave LITERAL indica cómo se interpretan '%' y '_'. Cuando está presente la palabra clave LITERAL, '%' y '_' no se tratan como metacaracteres (vea los ejemplos 3 y 5). Por el contrario, si la palabra clave LITERAL está ausente, '%' and '_' se comportan como metacaracteres (vea los ejemplos 1, 2 y 4). cadena1 acaba con [LITERAL] cadena2 Ejemplo 1: [PRODUCT_LINE] acaba con 'Equipo' Resultado 1: Equipo de acampada, Equipo de golf Ejemplo 2: [PRODUCT_LINE] acaba con '%Equipo' Resultado 2: Equipo de golf, Equipo de acampada Ejemplo 3: [PRODUCT_LINE] acaba con el literal 'Equipo%' Resultado 3: Equipo% Ejemplo 4: [PRODUCT_LINE] acaba con '%Precio' Resultado 4: Precio de producto, Precio_Año_Actual Ejemplo 5: [PRODUCT_LINE] acaba con el literal '%Precio' Resultado 5: %Precio Determina si "string1" coincide con el patrón de "string2", con el carácter "char" utilizado opcionalmente para los caracteres de escape de la serie de patrón. string1 LIKE string2 [ ESCAPE char ] Ejemplo: [PRODUCT_LINE] like 'G%' Resultado: Todas las líneas de producto que comienzan con 'G'. Ejemplo: [PRODUCT_LINE] like '%Ga%' escape 'a' Resultado: Todas las líneas de producto que comienzan con 'G%'. Funciona con las expresiones de resumen para definir el ámbito de agregación en la consulta. aggregate_function ( expresión for expresión { ; expresión } ) Funciona con expresiones de resumen para definir el ámbito que debe ajustarse tomando como base un subconjunto de las columnas de agrupamiento en la consulta. Equivale a la cláusula for. aggregate_function ( expresión for ANY expresión { ; expresión } ) Funciona con expresiones de resumen para definir el ámbito de modo que incluya todas las columnas de agrupamiento especificadas en la consulta. Consulte también la cláusula for. aggregate_function ( expresión for ALL expresión { ; expresión } ) Funciona con expresiones de resumen para establecer el ámbito que incluya toda la consulta. Consulte también la cláusula for. Esta función aparece en el informe de ejemplo Devoluciones de cliente y satisfacción del paquete Almacén de datos VA (análisis). aggregate_function ( expresión for report ) Funciona con las construcciones then y else. If define una condición; cuando la condición if es verdadera, se utiliza la expresión then. Cuando la condición if no es verdadera, se utiliza la expresión else. Esta función aparece en el informe de ejemplo 10 mejores minoristas para 2005 del paquete Almacén de datos VA (análisis). if ( condición ) then ( expresión ) else ( expresión ) Determina si "expresión1" existe en una lista de expresiones dada. expresión1 in ( lista_expresiones ) Determina si "expresión1" existe en una lista de valores o rangos constantes dada. expresión1 in_range { constante : constante [ ; constante : constante ] } Ejemplo: [código] in_range { 5 } Resultado: Esto es equivalente a [código] = 5. Ejemplo: [código] in_range { 5: } Resultado: Esto es equivalente a [código] >= 5. Ejemplo: [código] in_range { :5 } Resultado: Esto es equivalente a [código] <= 5. Ejemplo: [código] in_range { 5:10 } Resultado: Esto es equivalente a ( [código] >= 5 and [código] <= 10 ). Ejemplo: [código] in_range { :5,10,20: } Resultado: Esto es equivalente a ( [código] <= 5 or [código] = 10 or [código] >= 20 ). Determina si "valor" no está definido en los datos. valor is missing Determina si "valor" no está definido en los datos. valor is null Determina si "valor" está definido en los datos. valor is not missing Determina si "valor" está definido en los datos. valor is not null Determina si "string1" coincide con el patrón de "string2", con el carácter "char" utilizado opcionalmente para los caracteres de escape de la serie de patrón. Esta sintaxis soporta ambos metacaracteres: El signo de porcentaje (%) representa cero, uno o varios caracteres, y el signo de subrayado (_) representa cualquier carácter. string1 LIKE string2 [ ESCAPE char ] Ejemplo 1: [PRODUCT_LINE] like 'G%' Resultado 1: Todas las líneas de producto que comienzan con 'G'. Ejemplo 2: [PRODUCT_LINE] like '%Ga%' escape 'a' Resultado 2: Todas las líneas de producto que comienzan con 'G%'. Ejemplo 3: [PRODUCT_LINE] like 'C_R_' Resultado 3: Todas las líneas de producto con el nombre CARS o CARD. Ejemplo: lookup ( [País]) in ( 'Canadá'--> ( [Precio lista] * 0,60); 'Australia'--> ( [Precio lista] * 0,80 ) ) default ( [Precio lista] ) Busca y sustituye datos por un valor especificado. Se prefiere la utilización de la construcción case. lookup ( nombre ) in ( valor1 --> valor2 ) default ( expresión ) Devuelve TRUE si "argumento" es falso o devuelve FALSE si "argumento" es verdadero. Argumento NOT Devuelve TRUE si "argumento1" o "argumento2" son verdaderos. argumento1 or argumento2 Realiza un cálculo de resumen antes de aplicar el filtro de resumen. función_resumen ([expresión] prefilter) Ejemplo: total ( [Cantidad] for report prefilter ) summaryFilter: total( [Cantidad] for [NúmProducto] ) > 50000 Resultado: suma las cantidades de un informe antes de que se aplique el filtro de resumen. 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 Cuenta el número de filas devueltas por la consulta. Se utiliza con Count (). count ( ROWS ) Cuenta el número de filas devueltas por la consulta. Se utiliza con Count (). count ( ROWS  [ expression ]) Determina si "cadena1" empieza por "cadena2". Esta sintaxis soporta ambos metacaracteres: El signo de porcentaje (%) representa cero, uno o varios caracteres, y el signo de subrayado (_) representa cualquier carácter. La palabra clave LITERAL indica cómo se interpretan '%' y '_'. Cuando está presente la palabra clave LITERAL, '%' y '_' no se tratan como metacaracteres (vea los ejemplos 3 y 5). Por el contrario, si la palabra clave LITERAL está ausente, '%' and '_' se comportan como metacaracteres (vea los ejemplos 1, 2 y 4). cadena1 comienza con [LITERAL] cadena2 Ejemplo 1: [PRODUCT_LINE] comienza con 'Golf' Resultado 1: Equipo de golf Ejemplo 2: [PRODUCT_LINE] comienza con 'Exterior%' Resultado 2: Equipo de exterior Ejemplo 3: [PRODUCT_LINE] comienza con el literal 'Golf%' Resultado 3: Golf% Ejemplo 4: [PRODUCT_LINE] comienza con 'Año_Actual%' Resultado 4: Precio de año actual, Precio de año actual%, Precio de Año_Actual% Ejemplo 5: [PRODUCT_LINE] comienza con el literal 'Año_Actual%' Resultado 5: Año_Actual%. Funciona con las construcciones if o case. Cuando la condición if o la expresión when son verdaderas, se utiliza la expresión then. Esta función aparece en el informe de ejemplo 10 mejores minoristas para 2005 del paquete Almacén de datos VA (análisis). if ( condición ) then ..., or case expresión when expresión then .... end Funciona con la construcción case. Puede definir las condiciones que han de producirse cuando la expresión WHEN sea verdadera. case [expresión] when .... end
Funciones de resumen Esta lista contiene funciones predefinidas que devuelven un valor de resumen único para un grupo de valores relacionados o un valor de resumen diferente para cada instancia de un grupo de valores relacionados. Devuelve un valor calculado utilizando la función de agregación adecuada, basándose en el tipo de agregación de la expresión. Esta función aparece en el informe de ejemplo Presupuesto frente a real del paquete Almacén de datos VA (análisis). aggregate ( expresión [ auto ] ) aggregate ( expresión for [ all|any ] expresión { ; expresión } ) aggregate ( expresión for report ) Devuelve el valor medio de los elementos de datos seleccionados. Distinct es una expresión alternativa que es compatible con versiones anteriores del producto. average ( [ distinct ] expresión [ auto ] ) average ( [ distinct ] expresión for [ all|any ] expresión { ; expresión } ) average ( [ distinct ] expresión for report ) Ejemplo: average ( Ventas ) Resultado: Devuelve el promedio de todos los valores de Ventas. Devuelve el número de elementos de datos seleccionados sin contar los valores nulos. Distinct es una expresión alternativa que es compatible con versiones anteriores del producto. All está soportado en modo DQM solamente y evita que se presuponga el recuento doble de un elemento de datos de una tabla de dimensiones. count ( [ all | distinct ] expresión [ auto ] ) count ( [ all | distinct ] expresión for [ all|any ] expresión { ; expresión } ) count ( [ all | distinct ] expresión for report ) Ejemplo: count ( Ventas ) Resultado: Devuelve el número total de entradas en Ventas. Devuelve el valor máximo de los elementos de datos seleccionados. Distinct es una expresión alternativa que es compatible con versiones anteriores del producto. maximum ( [ distinct ] expresión [ auto ] ) maximum ( [ distinct ] expresión for [ all|any ] expresión { ; expresión } ) maximum ( [ distinct ] expresión for report ) Ejemplo: maximum ( Ventas ) Resultado: Devuelve el valor máximo de todos los valores de Ventas. Devuelve el valor de la mediana de los elementos de datos seleccionados. median ( expresión [ auto ] ) median ( expresión for [ all|any ] expresión { ; expresión } ) median ( expresión for report ) Devuelve el valor mínimo de los elementos de datos seleccionados. Distinct es una expresión alternativa que es compatible con versiones anteriores del producto. minimum ( [ distinct ] expresión [ auto ] ) minimum ( [ distinct ] expresión for [ all|any ] expresión { ; expresión } ) minimum ( [ distinct ] expresión for report ) Ejemplo: minimum ( Ventas ) Resultado: Devuelve el valor mínimo de todos los valores de Ventas. Devuelve un promedio móvil por fila para un conjunto de valores especificado o sobre un número de filas especificado. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. moving-average ( expresión_numérica ; expresión_numérica at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) moving-average (  expresión_numérica ; expresión_numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: moving-average ( Ctd ; 3 ) Resultado: Por cada fila, devuelve la cantidad y un promedio móvil de la fila actual y de las dos filas anteriores. Qty Moving-Average (Qty, 3) ------ ------------------------------------ 200 200 700 450 400 433.3333 200 433.3333 200 266.6667 500 300.0000 Devuelve un total móvil para cada fila de un conjunto de valores especificado o de un número de filas especificado. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. moving-total ( expresión_numérica ; expresión_numérica at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) moving-total (  expresión_numérica ; expresión_numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: moving-total ( Ctd ; 3 ) Resultado: Por cada fila, devuelve la cantidad y un total móvil de la fila actual y de las dos filas anteriores. Qty Moving-Total (Qty, 3) ------ -------------------------------- 200 200 700 900 400 1300 200 1300 200 800 500 900 Devuelve el porcentaje del valor total del elemento de datos seleccionado. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. Esta función aparece en el informe de ejemplo interactivo Cálculo porcentual (por año). percentage ( expresión_numérica [ at expresión  { ; expresión } ] [ <opción for> ] [ prefilter ] ) percentage (  expresión_numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: percentage ( Ventas 98 ) Resultado: Devuelve el porcentaje de las ventas totales del año 1998 que corresponde a cada representante de ventas. Employee Sales 98 Percentage --------- --------- ------------- Gibbons 60646 7.11% Flertjan 62523 7.35% Cornel 22396 2.63% Devuelve un valor, en escala de cien, que indica el porcentaje de una distribución igual o menor que los elementos de datos seleccionados. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. percentile ( expresión numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) percentile (  expresión numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: percentile ( Ventas 98 ) Resultado: Por cada fila, devuelve el porcentaje de filas que son iguales o menores que el valor de cantidad de esa fila. 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 Devuelve la clasificación de un valor comprendido dentro de un rango que se especifica. Devuelve números enteros para representar cualquier rango de clasificaciones, por ejemplo, de 1 (máximo) a 100 (mínimo). La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. quantile ( expresión_numérica ; expresión_numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) quantile (  expresión_numérica ; expresión_numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: quantile ( Ctd ; 4 ) Resultado: Devuelve la cantidad, la clasificación del valor de cantidad y los valores de cantidad desglosados en 4 grupos de cuantiles (cuartiles). 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 Devuelve la clasificación de un valor, representada como números enteros de 1 (máximo) a 4 (mínimo), en relación a un grupo de valores. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. quartile ( expresión numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) quartile (  expresión numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: quartile ( Ctd ) Resultado: Devuelve la cantidad y el cuartil del valor de cantidad representado en forma de números enteros, del 1 (máximo) al 4 (mínimo). Qty Quartile (Qty) ------ --------------------- 450 1 400 1 350 2 300 2 250 3 200 3 150 4 100 4 Devuelve el valor de clasificación de los elementos de datos seleccionados. El orden de clasificación es opcional; de forma predeterminada se presupone orden descendente (DESC). Si se unen dos o más filas, existirá un espacio en la secuencia de valores de la clasificación (conocidos también como clasificación olímpica). La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. Distinct es una expresión alternativa que es compatible con versiones anteriores del producto. Los valores nulos aparecen los últimos. Esta función aparece en el informe de ejemplo 10 mejores minoristas para 2005 del paquete Almacén de datos VA (análisis). rank ( expresión [ ASC|DESC ] { ; expresión [ ASC|DESC ] } [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) rank ( [ distinct ] expresión [ ASC|DESC ] { ; expresión [ ASC|DESC ] } [ <opción for>] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: rank ( Ventas 98 ) Resultado: Por cada fila, devuelve el valor de clasificación de las ventas del año 1998 que corresponde a cada representante de ventas. Algunos números se omiten cuando existe una unión entre filas. Employee Sales 98 Rank --------- --------- ------------ Gibbons 60000 1 Flertjan 50000 2 Cornel 50000 2 Smith 48000 4 Devuelve la media parcial por fila (incluida la fila actual) de un conjunto de valores. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. running-average ( expresión numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) running-average (  expresión numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: running-average ( Ctd ) Resultado: Por cada fila, devuelve la cantidad y una media parcial de la fila actual y de las filas 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 Devuelve el recuento parcial por fila (incluida la fila actual) de un conjunto de valores. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. running-count ( expresión numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) running-count (  expresión numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: running-count ( Ctd ) Resultado: Por cada fila, devuelve la cantidad y un recuento parcial de la posición de la fila actual. 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 Devuelve una diferencia parcial por fila, calculada como la diferencia entre el valor de la fila actual y el de la fila anterior (incluida la fila actual) de un conjunto de valores. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. running-difference ( expresión numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) running-difference (  expresión numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: running-difference ( Ctd ) Resultado: Por cada fila, devuelve la cantidad y una diferencia parcial entre el valor de la fila actual y la fila 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 Devuelve el valor máximo parcial por fila (incluida la fila actual) de un conjunto de valores. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. running-maximum ( expresión numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) running-maximum (  expresión numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: running-maximum ( Ctd ) Resultado: Por cada fila, devuelve la cantidad y un valor máximo parcial de la fila actual y de las filas 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 Devuelve el valor mínimo parcial por fila (incluida la fila actual) de un conjunto de valores. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. running-minimum ( expresión numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) running-minimum (  expresión numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: running-minimum ( Ctd ) Resultado: Por cada fila, devuelve la cantidad y un valor mínimo parcial de la fila actual y de las filas 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 Devuelve un valor total acumulado por fila (incluida la fila actual) de un conjunto de valores. La "<opción for>" define el ámbito de la función. La opción "at" define el nivel de agregación y sólo puede utilizarse en el contexto de los orígenes de datos relacionales. running-total ( expresión numérica [ at expresión { ; expresión } ] [ <opción for> ] [ prefilter ] ) running-total (  expresión numérica [ <opción for> ] [ prefilter ] ) <opción for> ::= for expresión { ; expresión }|for report|auto Ejemplo: running-total ( Ctd ) Resultado: Por cada fila, devuelve la cantidad y un total acumulado de la fila actual y de las filas 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 Devuelve la desviación estándar de los elementos de datos seleccionados. standard-deviation ( expresión [ auto ] ) standard-deviation ( expresión for [ all|any ] expresión { ; expresión } ) standard-deviation ( expresión for report ) Ejemplo: standard-deviation ( Coste Producto ) Resultado: Devuelve un valor que indica la desviación entre el coste del producto y el coste medio del producto. Calcula la desviación estándar de la población y devuelve la raíz cuadrada de la varianza de la población. standard-deviation-pop ( expresión [ auto ] ) standard-deviation-pop ( expresión for [ all|any ] expresión { ; expresión } ) standard-deviation-pop ( expresión for report ) Ejemplo: standard-deviation-pop ( Coste Producto ) Resultado: Devuelve un valor de la raíz cuadrada de la varianza de la población. Calcula la desviación estándar de ejemplo y devuelve la raíz cuadrada de la varianza de la población. standard-deviation-samp ( expresión [ auto ] ) standard-deviation-samp ( expresión for [ all|any ] expresión { ; expresión } ) standard-deviation-samp ( expresión for report ) Ejemplo: standard-deviation-samp ( Coste Producto ) Resultado: Devuelve un valor de la raíz cuadrada de la varianza del ejemplo. Devuelve la clasificación de un valor, como High (alto), Middle (medio), o Low (bajo) en relación a un grupo de valores. tertile ( expresión [ auto ] ) tertile ( expresión for [ all|any ] expresión { ; expresión } ) tertile ( expresión for report ) Ejemplo: tertile ( Ctd ) Resultado: Devuelve la cantidad, el cuantil del valor de cantidad descompuesto en terciles, y los valores de cantidad descompuestos en terciles. Qty Quantile (Qty, 3) Tertile (Qty) ------ ------------------------ ------------------ 800 1 H 700 1 H 500 2 M 400 2 M 200 3 L 200 3 L Devuelve el valor total de los elementos de datos seleccionados. Distinct es una expresión alternativa que es compatible con versiones anteriores del producto. Esta función aparece en el informe de ejemplo Presupuesto frente a real del paquete Almacén de datos VA (análisis). total ( [ distinct ] expresión [ auto ] ) total ( [ distinct ] expresión for [ all|any ] expresión { ; expresión } ) total ( [ distinct ] expresión for report ) Ejemplo: total ( Ventas ) Resultado: Devuelve el valor total de todos los valores de Ventas. Funciones estadísticas Esta lista contiene funciones de resumen predefinidas de naturaleza estadística. Devuelve la varianza de los elementos de datos seleccionados. variance ( expresión [ auto ] ) variance ( expresión for [ all|any ] expresión { ; expresión } ) variance ( expresión for report ) Ejemplo: variance ( Coste Producto ) Resultado: Devuelve un valor que indica hasta qué punto varía el coste del producto respecto al coste medio del producto. Devuelve la varianza de la población de un conjunto de números tras descartar los valores nulos del conjunto. variance-pop ( expresión [ auto ] ) variance-pop ( expresión for [ all|any ] expresión { ; expresión } ) variance-pop ( expresión for report ) Ejemplo: variance-pop ( Ctd ) Resultado: Por cada fila, devuelve la varianza de la población de un conjunto de números tras descartar los valores nulos de este conjunto. Devuelve la varianza del ejemplo de un conjunto de números tras descartar los valores nulos del conjunto. variance-samp ( expresión [ auto ] ) variance-samp ( expresión for [ all|any ] expresión { ; expresión } ) variance-samp ( expresión for report ) Ejemplo: variance-samp ( Ctd ) Resultado: Por cada fila, devuelve la varianza del ejemplo de un conjunto de números tras descartar los valores nulos de este conjunto. corr ( expresión_numérica1 ;  expresión_numérica2  [ auto ] ) corr ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) corr ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve el coeficiente de correlación de un conjunto de pares de números. Se calcula de la forma siguiente: COVAR_POP(expresión_numérica1, expresión_numérica2) / (STDDEV_POP(expresión_numérica1) * STDDEV_POP(expresión_numérica2)) Ejemplo: corr ( Coste ;  Margen  for report) Resultado: el coeficiente de correlación entre "Coste" y "Margen. 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 ( expresión_numérica1 ;  expresión_numérica2 ) covariance-pop ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) covariance-pop ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve la covarianza de la población de un conjunto de pares de números. Ejemplo: covariance-pop ( Coste ;  Margen  for report) Resultado: la covarianza de la población entre "Coste" y "Margen. 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 ( expresión_numérica1 ;  expresión_numérica2 ) covariance-samp ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) covariance-samp ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve la covarianza del ejemplo de un conjunto de pares de números. Ejemplo: covariance-samp ( Coste ;  Margen  for report) Resultado: la covarianza de muestra entre "Coste" y "Margen. 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-average-x ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-average-x ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve el promedio de la variable independiente (expresión_numérica2) de la línea de regresión. Ejemplo: regression-average-x ( Coste ;  Margen  for report) Resultado: el promedio de "Margen" en la línea de regresión para "Coste" y "Margen". 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-average-y ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-average-y ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve el promedio de la variable dependiente (expresión_numérica1) de la línea de regresión. Ejemplo: regression-average-y ( Coste ;  Margen  for report) Resultado: el promedio de "Coste" en la línea de regresión para "Coste" y "Margen". 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-count ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-count ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve el número de números no nulos utilizados para ajustar la línea de regresión. Ejemplo: regression-count ( Coste ;  Margen  for report) Resultado: el número de números no nulos utilizados para ajustar la línea de regresión para "Coste" y "Margen". 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-intercept ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-intercept ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve la intersección y de la línea de regresión. Se calcula de la forma siguiente: AVG(expresión_numérica1) - REGR_SLOPE(expresión_numérica1, expresión_numérica2) * AVG(expresión_numérica2) Ejemplo: regression-intercept ( Coste ;  Margen  for report) Resultado: la intersección Y de la línea de regresión para "Coste" y "Margen". 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-r2 ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-r2 ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve el coeficiente de determinación (también denominado "R cuadrado" o "bondad de ajuste") de la línea de regresión. Este valor se calcula basándose en las condiciones siguientes: IF VAR_POP(expresión_numérica2) = 0 THEN NULL IF VAR_POP(expresión_numérica1) = 0 AND VAR_POP(expresión_numérica2) <> 0 THEN 1 IF VAR_POP(expresión_numérica1) > 0 and VAR_POP(expresión_numérica2) <> 0 THEN POWER(CORR (expresión_numérica1, expresión_numérica2)) Ejemplo: regression-r2 ( Coste ;  Margen  for report) Resultado: el coeficiente de determinación de la línea de regresión para "Coste" y "Margen". 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-slope ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-slope ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve la pendiente de la línea de regresión. Se calcula de la forma siguiente: COVAR_POP(expresión_numérica1, expresión_numérica2) / VAR_POP(expresión_numérica2) Ejemplo: regression-slope ( Coste ;  Margen ) Resultado: la inclinación de la línea de regresión para "Coste" y "Margen". 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-sxx ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-sxx ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve el cálculo siguiente tras eliminar los pares NULL: REGR_COUNT(expresión_numérica1, expresión_numérica2) * VAR_POP(expresión_numérica2) Ejemplo: regression-sxx ( Coste ;  Margen  for report) Resultado: el cálculo sxx de la línea de regresión para "Coste" y "Margen". 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-sxy ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-sxy ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve el cálculo siguiente tras eliminar los pares NULL: REGR_COUNT(expresión_numérica1, expresión_numérica2) * COVAR_POP(expresión_numérica1, expresión_numérica2) Ejemplo: regression-sxy ( Coste ;  Margen  for report) Resultado: el cálculo sxy de la línea de regresión para "Coste" y "Margen". 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 ( expresión_numérica1 ;  expresión_numérica2 ) regression-syy ( expresión_numérica1 ;  expresión_numérica2 for [ all|any ] expresión { ; expresión } ) regression-syy ( expresión_numérica1 ;  expresión_numérica2 for report ) Devuelve el cálculo siguiente tras eliminar los pares NULL: REGR_COUNT(expresión_numérica1, expresión_numérica2) * VAR_POP(expresión_numérica1) Ejemplo: regression-syy ( Coste ;  Margen  for report) Resultado: el cálculo syy de la línea de regresión para "Coste" y "Margen". 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 Resúmenes de miembros Esta lista contiene funciones predefinidas que devuelven un valor de resumen único para un conjunto de miembros o un valor de resumen diferente para cada miembro de un conjunto de miembros.
Error Se ha detectado un error en la expresión en la posición de la señal resaltada.
Construcciones Esta lista contiene construcciones y plantillas que se pueden usar para crear una expresión. Las plantillas combinan varias funciones dentro de un grupo. Por ejemplo, la plantilla search case incluye las funciones case, when, else y end. search case Esta construcción es la plantilla para un search case, incluidas las funciones CASE, WHEN, ELSE y END. CASE WHEN [País] = 'Canadá' THEN ([Precio lista] * 0,60) WHEN [CódigoPaís] > 100 THEN [Precio lista] * 0,80 ELSE [Precio lista] END simple case Esta construcción es la plantilla para un simple case, incluidas las funciones CASE, WHEN, ELSE y END. CASE [País] WHEN 'Canadá' THEN ([Precio lista] * 0,60) WHEN 'Australia' THEN [Precio lista] * 0,80 ELSE [Precio lista] END if then else Esta construcción es la plantilla para una sentencia if...then...else. Esta construcción aparece en el informe de ejemplo 10 mejores minoristas para 2005 del paquete Almacén de datos VA (análisis). IF ([País] = 'Canadá') THEN ([Precio lista] * 0,60) ELSE ([Precio lista]) in_range Ésta es la plantilla para una expresión in_range. [código] IN_RANGE { :30 , 40, 50, 999: } Ejemplo: [código] IN_RANGE { 5 } Resultado: Esto es equivalente a [código] = 5. Ejemplo: [código] IN_RANGE { 5: } Resultado: Esto es equivalente a [código] >= 5. Ejemplo: [código] IN_RANGE { :5 } Resultado: Esto es equivalente a [código] <= 5. Ejemplo: [código] IN_RANGE { 5:10 } Resultado: Esto es equivalente a ( [código] >= 5 and [código] <= 10 ). Ejemplo: [código] IN_RANGE { :5,10,20: } Resultado: Esto es equivalente a ( [código] <= 5 or [código] = 10 or [código] >= 20 ).
Predicados de periodo Esta lista contiene predicados que se pueden utilizar para comparar expresiones de periodo. contains Devuelve "true" si "expresión_periodo1" contiene "expresión_periodo2"; es decir, se devuelve "true" si el primer periodo contiene el valor de fecha y hora o bien todos los valores que están contenidos en el segundo periodo. expresión_periodo1 contiene ( expresión_periodo2 | expresión_fechayhora ) period( 1989-11-01, 1991-05-19 ) contiene period( 1991-05-19, 1991-06-04 ) Resultado: false period( 1989-11-01, 1991-05-19 ) contiene period( 1990-05-19, 1991-04-04 ) Resultado: true period( 1989-11-01, 1991-05-19 ) contiene 1991-04-04 Resultado: true igual a Devuelve "true" si "expresión_periodo1" y "expresión_periodo2" tienen los mismos valores de inicio de periodo y final de periodo. expresión_periodo1 es igual a expresión_periodo2 period( 1989-11-01, 1991-05-19 ) es igual a period( 1989-11-01, 1991-05-19 ) Resultado: true precede inmediatamente Devuelve "true" si "expresión_periodo1" precede inmediatamente a "expresión_periodo2"; es decir, si el valor final del primer periodo es igual al valor de inicio del segundo periodo. expresión_periodo1 precede inmediatamente a expresión_periodo2 period( 1989-11-01, 1991-05-19 ) precede inmediatamente a period( 1991-05-19, 1991-06-04 ) Resultado: true period( 1989-11-01, 1991-05-18 ) precede inmediatamente a period( 1991-05-19, 1991-06-04 ) Resultado: false sigue inmediatamente Devuelve "true" si "expresión_periodo1" sigue inmediatamente a "expresión_periodo2"; es decir, si el valor de inicio del primer periodo es igual al valor final del segundo periodo. expresión_periodo1 sigue inmediatamente a expresión_periodo2 period( 1991-05-19, 1994-01-10 ) sigue inmediatamente a period( 1991-01-19, 1991-05-19 ) Resultado: true period( 1991-05-19, 1994-01-10 ) sigue inmediatamente a period( 1991-01-20, 1991-05-18 ) Resultado: false solapa Devuelve "true" si "expresión_periodo1" solapa a "expresión_periodo2", es decir, tienen al menos un valor en común. expresión_periodo1 solapa a expresión_periodo2 period( 1991-05-19, 1994-01-10 ) solapa a period( 1993-01-19, 1995-05-19 ) Resultado: true precede Devuelve "true" si "expresión_periodo1" precede a "expresión_periodo2"; es decir, todos los valores contenidos en el primer periodo son menores que o iguales al valor de inicio del segundo periodo. expresión_periodo1 precede a expresión_periodo2 period( 1989-11-01, 1991-05-19 ) precede a period( 1991-05-19, 1991-06-04 ) Resultado: true period( 1989-11-01, 1991-05-18 ) precede a period( 1991-05-19, 1991-06-04 ) Resultado: true sigue Devuelve "true" si "expresión_periodo1" sigue a "expresión_periodo2"; es decir, todos los valores contenidos en el primer periodo son mayores que o iguales al valor final del segundo periodo. expresión_periodo1 sigue a expresión_periodo2 period( 1991-05-19, 1994-01-10 ) sigue a period( 1991-01-19, 1991-05-19 ) Resultado: true period( 1991-05-20, 1994-01-10 ) sigue a period( 1991-01-20, 1991-05-19 ) Resultado: true
Funciones de fecha/hora Esta lista contiene funciones de negocio para realizar los cálculos de fecha y hora. _add_seconds ( expresión_hora; expresión_entero ) Devuelve la hora o la fecha y hora, en función del formato de "expresión_hora", que resulta de añadir "expresión_entero" segundos a "expresión_hora". Ejemplo: _add_seconds ( 13:04:59 ; 1 ) Resultado: 13:05:00 Ejemplo: _add_seconds ( 2002-04-30 12:10:10.000; 1 ) Resultado: 2002-04-30 12:10:11.000 Ejemplo: _add_seconds ( 2002-04-30 00:00:00.000; 1/100 ) Tenga en cuenta que el segundo argumento no es un número entero. Lo soportan algunas tecnologías de bases de datos e incrementa la parte de la hora. Resultado: 2002-04-30 00:00:00.010 _add_minutes ( expresión_hora; expresión_entero ) Devuelve la hora o la fecha y hora, en función del formato de "expresión_hora", que resulta de añadir "expresión_entero" minutos a "expresión_hora". Ejemplo: _add_minutes ( 13:59:00 ; 1 ) Resultado: 14:00:00 Ejemplo: _add_minutes ( 2002-04-30 12:59:10.000; 1 ) Resultado: 2002-04-30 13:00:10.000 Ejemplo: _add_minutes ( 2002-04-30 00:00:00.000; 1/60 ) Tenga en cuenta que el segundo argumento no es un número entero. Lo soportan algunas tecnologías de bases de datos e incrementa la parte de la hora. Resultado: 2002-04-30 00:00:01.000 _add_hours ( expresión_hora; expresión_entero ) Devuelve la hora o la fecha y hora, en función del formato de "expresión_hora", que resulta de añadir "expresión_entero" horas a "expresión_hora". Ejemplo: _add_hours ( 13:59:00 ; 1 ) Resultado: 14:59:00 Ejemplo: _add_hours ( 2002-04-30 12:10:10.000; 1 ) Resultado: 2002-04-30 13:10:10.000; Ejemplo: _add_hours ( 2002-04-30 00:00:00.000; 1/60 ) Tenga en cuenta que el segundo argumento no es un número entero. Lo soportan algunas tecnologías de bases de datos e incrementa la parte de la hora. Resultado: 2002-04-30 00:01:00.000 _add_days ( expresión_fecha; expresión_entero ) Devuelve la fecha o la fecha y hora, en función del formato de "expresión_fecha", que resulta de añadir "expresión_entero" días a "expresión_fecha". Ejemplo: _add_days ( 2002-04-30 ; 1 ) Resultado: 2002-05-01 Ejemplo: _add_days ( 2002-04-30 12:10:10.000; 1 ) Resultado: 2002-05-01 12:10:10.000 Ejemplo: _add_days ( 2002-04-30 00:00:00.000; 1/24  Tenga en cuenta que el segundo argumento no es un número entero. Lo soportan algunas tecnologías de bases de datos e incrementa la parte de la hora. Resultado: 2002-04-30 01:00:00.000 _add_months ( expresión_fecha; expresión_entero ) Añade "expresión_entero" meses a "expresión_fecha". Si el mes resultante tiene menos días que el componente de día del mes, se devuelve el último día del mes resultante. En todos los demás casos, el valor devuelto tiene el mismo componente de día del mes que "expresión_fecha". Ejemplo: _add_months ( 2012-04-15 ; 3 ) Resultado: 2012-07-15 El resultado no es el último día del mes resultante. Ejemplo: _add_months ( 2012-02-29 ; 1 ) Resultado: 2012-03-29 Utilice la función _last_of_month para devolver el último día del mes. Ejemplo: _last_of_month ( _add_months ( 2012-02-29 ; 1 ) ) Resultado: 2012-03-31 El día se ajusta al último día del mes resultante. Ejemplo: _add_months ( 2012-01-31 ; 1 ) Resultado: 2012-02-29 Se añade a una indicación de fecha y hora. Ejemplo: _add_months ( 2002-04-30 12:10:10.000 ; 1 ) Resultado: 2002-05-30 12:10:10.000 _add_years ( expresión_fecha; expresión_entero ) Añade "expresión_entero" años a "expresión_fecha". Si "expresión_fecha" es el 29 de febrero y el año resultante no es bisiesto, el día resultante se establece en el 28 de febrero. En todos los demás casos, el valor devuelto tiene el mismo día y mes que "expresión_fecha". Ejemplo: _add_years ( 2012-04-15 ; 1 ) Resultado: 2013-04-15 El 29 de febrero se ajusta para los años no bisiestos. Ejemplo: _add_years ( 2012-02-29 ; 1 ) Resultado: 2013-02-28 Se añade a una indicación de fecha y hora. Ejemplo: _add_years ( 2002-04-30 12:10:10.000 ; 1 ) Resultado: 2003-04-30 12:10:10.000 _age ( expresión_fecha ) Devuelve el número resultante de restar "expresión_fecha" de la fecha actual. El valor devuelto tiene la forma AAAAMMDD, donde AAAA representa el número de años, MM representa el número de meses y DD representa el número de días. Ejemplo: _age ( 1990-04-30 ) (si la fecha de hoy es 05-02-2003) Resultado: 120906, que significa 12 años, 9 meses y 6 días. _date_to_int ( date_expression ) Devuelve la representación de enteros de "date_expression". El valor devuelto tiene la forma AAAAMMDD, donde AAAA representa el número de años, MM representa el número de meses y DD representa el número de días. Ejemplo: _date_to_int ( 2003-01-01 ) Resultado: 20030101 _day_of_week ( expresión_fecha; entero ) Devuelve el día de la semana (un número de 1 a 7), donde 1 es el primer día de la semana como se indica en el segundo parámetro (de 1 a 7, siendo 1 el lunes y 7 el domingo). Tenga en cuenta que en el estándar ISO 8601, la semana comienza en lunes, siendo éste el día 1. Ejemplo: _day_of_week ( 2003-01-01 ; 1 ) Resultado: 3 _day_of_year ( expresión_fecha ) Devuelve el día del año (de 1 a 366) en "expresión_fecha". También conocido como día juliano. Ejemplo: _day_of_year ( 2003-03-01 ) Resultado: 61 _days_between ( expresión_fecha1 ; expresión_fecha2 ) Devuelve un número positivo o negativo que representa el número de días entre "expresión_fecha1" y "expresión_fecha2". Si "expresión_fecha1" < "expresión_fecha2", el resultado será un número negativo. Ejemplo: _days_between ( 2002-06-21 , 2002-04-30 ) Resultado: 52 Ejemplo: _days_between ( 2002-04-30 ; 2002-06-21 ) Resultado: -52 _days_to_end_of_month ( expresión_fecha ) Devuelve un número que representa el número de días restantes del mes representado mediante "expresión_fecha". Ejemplo: _days_to_end_of_month ( 2002-04-20 14:30:22,123 ) Resultado: 10 _first_of_month ( expresión_fecha ) Devuelve una fecha o fecha y hora, en función del argumento, obtenida al convertir "expresión_fecha" en una fecha con el mismo año y mes, pero con el día definido en 1. Ejemplo: _first_of_month ( 2002-04-20 ) Resultado: 2002-04-01 Ejemplo: _first_of_month ( 2002-04-20 12:10:10,000 ) Resultado: 2002-04-01 12:10:10,000 _last_of_month ( expresión_fecha ) Devuelve una fecha o fecha y hora, en función del argumento, que es el último día del mes representado mediante "expresión_fecha". Ejemplo: _last_of_month ( 2002-01-14 ) Resultado: 2002-01-31 Ejemplo: _last_of_month ( 2002-01-14 12:10:10,000 ) Resultado: 2002-01-31 12:10:10,000 _make_timestamp ( expresión_entero1; expresión_entero2; expresión_entero3 ) Devuelve una indicación de fecha y hora construida a partir de "expresión_entero1" (el año), "expresión_entero2" (el mes) y "expresión_entero3" (el día). La parte correspondiente a la hora se establece de forma predeterminada en 00:00:00.000. Ejemplo: _make_timestamp ( 2002 ; 01 ; 14 ) Resultado: 2002-01-14 00:00:00,000 _months_between ( expresión_fecha1; expresión_fecha2 ) Devuelve un entero positivo o negativo que representa el número de meses entre "expresión_fecha1" y "expresión_fecha2". Si "expresión_fecha1" es anterior a "expresión_fecha2", el resultado será un número negativo. Ejemplo: _months_between ( 2002-04-03 ; 2002-01-30 ) Resultado: 2 Ejemplo: _months_between ( 2002-01-30 , 2002-04-03 ) Resultado: -2 _shift_timezone ( valor_indicación_fecha_hora , huso_horario_origen , huso_horario_destino ) _shift_timezone ( valor_indicación_fecha_hora_con_huso_horario , huso_horario_destino ) Convierte un valor de indicación de fecha y hora de un huso horario a otro. Esta función utiliza el horario de verano si procede. Si el primer argumento es de tipo "indicación de fecha y hora", el segundo argumento y el tercero representan los husos horarios de origen y de destino respectivamente. Si el primer argumento es de tipo "indicación de fecha y hora con huso horario", el huso horario de origen está implícito en el primer argumento, por lo que el segundo argumento representa el huso horario de destino. El tipo de datos del primer argumento también determinará el tipo de datos del valor de retorno. El segundo argumento y el tercero son de tipo "cadena" y representan los identificadores de los husos horarios. A continuación encontrará una lista de estos identificadores. Nota: el uso de esta función hará que se produzca procesamiento local. Ejemplo: _shift_timezone( 2013-06-30 12:00:00 , 'America/New_York' , 'GMT' ) Resultado: 2013-06-30 16:00:00 Ejemplo: _shift_timezone( 2013-11-30 12:00:00-05:00 , 'America/Vancouver' ) Resultado: 2013-11-30 09:00:00-08:00 Identificadores de husos horarios: 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 También se puede usar un identificador de huso horario personalizado, utilizando el formato GMT(+|-)HH:MM. Por ejemplo, GMT-06:30 o GMT+02:00. _week_of_year ( expresión_fecha ) Devuelve el número de la semana del año indicado en "expresión_fecha" conforme al estándar ISO 8601. La semana 1 del año es la primera semana del año que contiene un jueves, lo cual equivale a la primera semana que contiene el 4 de enero. Una semana comienza el lunes (día 1) y acaba el domingo (día 7). Ejemplo: _week_of_year ( 2003-01-01 ) Resultado: 1 _years_between ( expresión_fecha1; expresión_fecha2 ) Devuelve un entero positivo o negativo que representa el número de años comprendido entre "expresión_fecha1" y "expresión_fecha2". Si "expresión_fecha1" < "expresión_fecha2", se devuelve un valor negativo. Ejemplo: _years_between ( 2003-01-30 ; 2001-04-03 ) Resultado: 1 Ejemplo: _years_between ( 2001-04-03 , 2003-01-30 ) Resultado: -1 _ymdint_between ( expresión_fecha1 ; expresión_fecha2 ) Devuelve un número que representa la diferencia entre "expresión_fecha1" y "expresión_fecha2". El valor devuelto tiene la forma AAAAMMDD, donde AAAA representa el número de años, MM representa el número de meses y DD representa el número de días. Ejemplo: _ymdint_between ( 1990-04-30 ; 2003-02-05 ) Resultado: 120905, que significa 12 años, 9 meses y 5 días. _year ( expresión_fecha ) Devuelve el valor del campo de año en "expresión_fecha". Ejemplo: _year ( 2003-03-01 ) Resultado: 2003 _month ( expresión_fecha ) Devuelve el valor del campo de mes en "expresión_fecha". Ejemplo: _month ( 2003-03-01 ) Resultado: 3 _day ( expresión_fecha ) Devuelve el valor del campo de día en "expresión_fecha". Ejemplo: _day ( 2003-03-01 ) Resultado: 1 _hour ( expresión_fecha ) Devuelve el valor del campo de hora en "expresión_fecha". Ejemplo: _hour ( 2002-01-31 12:10:10.254 ) Resultado: 12 _minute ( expresión_fecha ) Devuelve el valor del campo de minuto en "expresión_fecha". Ejemplo: _minute ( 2002-01-31 12:10:10.254 ) Resultado: 10 _second ( expresión_fecha ) Devuelve el valor del campo de minuto en "expresión_fecha". Ejemplo: _second ( 2002-01-31 12:10:10.254 ) Resultado: 10.254 _timezone_hour ( indicación_fecha_con_valor_huso_horario ) _timezone_hour ( indicación_hora_con_valor_huso_horario ) Devuelve el valor del campo de hora del huso horario en la expresión. The expression must be of type "timestamp with time zone" or "time with time zone". Ejemplo: _timezone_hour ( 2002-01-31 12:10:10.254-05:30 ) Resultado: -5 _timezone_minute ( indicación_fecha_con_valor_huso_horario ) _timezone_minute ( indicación_hora_con_valor_huso_horario ) Devuelve el valor del campo de hora del huso horario en la expresión. La expresión debe ser del tipo "indicación de fecha y hora con huso horario" o de tipo "hora con huso horario". Ejemplo: _timezone_minute ( 2002-01-31 12:10:10.254-05:30 ) Resultado: -30 _start_of_day ([ expresión_fecha ]) Devuelve el inicio de "expresión_fecha" o el inicio del día actual como indicación de fecha y hora. Ejemplo: _start_of_day ( 2014-11-23 12:10:10.254 ) Resultado: 2014-11-23 00:00:00 Ejemplo: _start_of_day () Resultado: 2016-01-01 00:00:00 _end_of_day ([ expresión_fecha ]) Devuelve el final de "expresión_fecha" o el final del día actual como indicación de fecha y hora. Ejemplo: _end_of_day ( 2014-11-23 12:10:10.254 ) Resultado: 2014-11-23 23:59:59 Ejemplo: _end_of_day () Resultado: 2016-01-01 23:59:59 _unix_timestamp ( expresión_fecha ) Devuelve el número de segundos desde 1970-01-01 00:00:00-00 para la "expresión_fecha" determinada. Ejemplo: _unix_timestamp ( 2014-11-23 ) Resultado: 1416718800 _from_unixtime ( expresión_entero ) Devuelve la hora unix especificada por "expresión_entera" como marca de hora con zona horaria. Ejemplo: _from_unixtime ( 1417807335 ) Resultado: 2014-12-05 19:22:15+00:00
Funciones de macro Esta lista contiene funciones que se pueden utilizar en una macro. Cada macro puede contener una o varias funciones de macro. La macro está delimitada por un signo de almohadilla (#) situado al principio y al final de la misma. Los elementos incluidos entre los signos de almohadilla se consideran la expresión de macro y se ejecutan en tiempo de ejecución. En una función de macro que acepte como argumentos expresiones de indicación de fecha y hora con huso horario como tipo de datos, el formato aceptado es 'aaaa-mm-dd hh:mm:ss[.ff]+hh:mm' en el que la fracción de los segundos es opcional y se puede representar mediante 1 a 9 dígitos. En lugar de un espacio que separa la parte de la fecha de la parte de la hora, también se admite el carácter "T". Asimismo, en lugar de huso horario '+hh:mm', se admite el carácter "Z" que se procesará internamente como '+00:00'. Las funciones de macro que devuelven expresiones con indicación de fecha y hora con huso horario como tipo de datos devuelven 9 dígitos de manera predeterminada para la fracción de los segundos. La función de macro timestampMask() se puede utilizar para reducir la salida si es necesario. Devuelve la indicación de fecha y hora con huso horario (en forma de cadena) que resulta de sumar el número de segundos de "expresión_entero" a "expresión_cadena", donde "expresión_cadena" representa una indicación de fecha y hora con huso horario. _add_seconds ( expresión_cadena ; expresión_entero ) Ejemplo: # _add_seconds ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Resultado: 2005-11-01 11:59:59.000-05:00 Ejemplo: # _add_seconds ( $current_timestamp ; 1 ) # Resultado: 2005-11-01 12:00:01.000000000-05:00 Ejemplo: # timestampMask ( _add_seconds ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Resultado: 12:00:01 Devuelve la indicación de fecha y hora con huso horario (en forma de cadena) que resulta de sumar el número de minutos de "expresión_entero" a "expresión_cadena", donde "expresión_cadena" representa una indicación de fecha y hora con huso horario. _add_minutes ( expresión_cadena ; expresión_entero ) Ejemplo: # _add_minutes ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Resultado: 2005-11-01 11:59:00.000-05:00 Ejemplo: # _add_minutes ( $current_timestamp ; 1 ) # Resultado: 2005-11-01 12:01:00.000000000-05:00 Ejemplo: # timestampMask ( _add_minutes ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Resultado: 12:01:00 Devuelve la indicación de fecha y hora con huso horario (en forma de cadena) que resulta de sumar el número de horas de "expresión_entero" a "expresión_cadena", donde "expresión_cadena" representa una indicación de fecha y hora con huso horario. _add_hours ( expresión_cadena ; expresión_entero ) Ejemplo: # _add_hours ( '2005-11-01 12:00:00,000-05:00' ; -1 ) # Resultado: 2005-11-01 13:00:00.000-05:00 Ejemplo: # _add_hours ( $current_timestamp ; 1 ) # Resultado: 2005-11-01 13:00:00.000000000-05:00 Ejemplo: # timestampMask ( _add_hours ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Resultado: 13:00:00 Devuelve la indicación de fecha y hora con huso horario (en forma de cadena) que resulta de sumar el número de días de "expresión_entero" a "expresión_cadena", donde "expresión_cadena" representa una indicación de fecha y hora con huso horario. Cuando el primer argumento es una fecha, especificada como una cadena con el formato: aaaa-mm-dd, se devuelve el valor como una cadena con el formato de una fecha. _add_days ( expresión_cadena ; expresión_entero ) Ejemplo: # _add_days ( '2005-11-01 12:00:00,000-05:00' ; -1 ) # Resultado: 2005-10-31 12:00:00.000000000-05:00 Ejemplo: # _add_days ( $current_timestamp ; 1 ) # Resultado: 2005-11-02 12:00:00.000000000-05:00 Ejemplo: # timestampMask ( _add_days ( $current_timestamp ; 1 ) ; 'aaaa-mm-dd' ) # Resultado: 2005-11-02 Ejemplo: # _add_days( '2019-11-14' , 3 ) # Resultado: 2019-11-17 Devuelve la indicación de fecha y hora con huso horario (en forma de cadena) que resulta de sumar el número de meses de "expresión_entero" a "expresión_cadena", donde "expresión_cadena" representa una indicación de fecha y hora con huso horario. Cuando el primer argumento es una fecha, especificada como una cadena con el formato: aaaa-mm-dd, se devuelve el valor como una cadena con el formato de una fecha. _add_months ( expresión_cadena ; expresión_entero ) Ejemplo: # _add_months ( '2005-11-01 12:00:00,000-05:00' ; -1 ) # Resultado: 2005-10-01 12:00:00,000000000-05:00 Ejemplo: # _add_months ( $current_timestamp ; 1 ) # Resultado: 2005-12-01 12:00:00,000000000-05:00 Ejemplo: # timestampMask ( _add_months ( $current_timestamp ; 1 ) ; 'aaaa-mm-dd' ) # Resultado: 2005-12-01 Ejemplo: # _add_months( '2019-11-14' , -1 ) # Resultado: 2019-10-14 Devuelve la indicación de fecha y hora con huso horario (en forma de cadena) que resulta de sumar el número de años de "expresión_entero" a "expresión_cadena", donde "expresión_cadena" representa una indicación de fecha y hora con huso horario. Cuando el primer argumento es una fecha, especificada como una cadena con el formato: aaaa-mm-dd, se devuelve el valor como una cadena con el formato de una fecha. _add_years ( expresión_cadena ; expresión_entero ) Ejemplo: # _add_years ( '2005-11-01 12:00:00,000-05:00' ; -1 ) # Resultado: 2004-11-01 12:00:00.000000000-05:00 Ejemplo: # _add_years ( $current_timestamp ; 1 ) # Resultado: 2006-11-01 12:00:00,000000000-05:00 Ejemplo: # timestampMask ( _add_years ( $current_timestamp ; 1 ) ; 'aaaa-mm-dd' ) # Resultado: 2006-11-01 Ejemplo: # _add_years( '2019-11-14' , -2 ) # Resultado: 2017-11-14 _first_of_month ( expresión_cadena ) Devuelve una indicación de fecha y hora con huso horario (en forma de cadena) mediante la conversión del día indicado en "expresión_cadena" en 1, donde "expresión_cadena" es una indicación de fecha y hora con huso horario. Ejemplo: # _first_of_month ( '2005-11-11 12:00:00,000-05:00' ) # Resultado: 01-11-05 12:00:00.000000000-05:00 Ejemplo: # timestampMask ( _first_of_month ( '2005-11-11 12:00:00,000-05:00' ) ; 'aaaammdd' ) # Resultado: 20051101 _last_of_month ( expresión_cadena ) Devuelve una indicación de fecha y hora con huso horario (en forma de cadena) que representa el último día del mes indicado en "expresión_cadena", donde "expresión_cadena" es una indicación de fecha y hora con huso horario. Ejemplo: # _last_of_month ( '2005-11-11 12:00:00,000-05:00' ) # Resultado: 2005-11-30 12:00:00,000000000-05:00 Ejemplo: # timestampMask ( _last_of_month ( '2005-11-11 12:00:00,000-05:00' ) ; 'aaaa-mm-dd' ) # Resultado: 2005-11-30 modelj ( 'identifier' [ , 'model_search_path' [ , 'options' ] ] ) Devuelve una parte del modelo de metadatos en formato json. Se utilizará el modelo actual cuando no se especifique 'model_search_path'. El argumento 'options' se puede establecer en 'cleanup', esto cambia algunas partes del resultado en valores fijos (útil para pruebas). sq ( modelj ( '[gosales].[country].[country]' ) Encierra entre corchetes "expresión_cadena". sb ( expresión_cadena ) Ejemplo: # sb ( 'abc' ) # Resultado: [abc] Encierra entre comillas simples "expresión_cadena". sq ( expresión_cadena ) Ejemplo: # sq ( 'cero' ) # Resultado: 'cero' Encierra entre comillas dobles "expresión_cadena". dq ( expresión_cadena ) Ejemplo: # dq ( 'cero' ) # Resultado: "cero" Utiliza la información de identidad del usuario autenticado actual para buscar valores en el mapa de parámetros especificada. Cada parte de la identidad del usuario (nombre de cuenta, nombres de grupo, nombres de rol) se utiliza como una clave en la correlación. La lista de valores únicos que se recupera del mapa de parámetros se devuelve en forma de cadena, en la que cada valor aparece encerrado entre comillas simples y con los valores múltiples separados por comas. CSVIdentityName ( %parameter_map_name [ ; cadena_separador ] ) Ejemplo: # CSVIdentityName ( %security_clearance_level_map ) # Resultado: 'nivel_500' ; 'nivel_501' ; 'nivel_700' Devuelve las partes de la identidad del usuario (nombre de cuenta, nombres de grupo, nombres de rol) como una lista de cadenas. La lista de valores únicos se devuelve en forma de cadena, en la que cada valor aparece encerrado entre comillas simples y con los valores múltiples separados por comas. CSVIdentityNameList ( [ cadena_separador ] ) Ejemplo: # CSVIdentityNameList ( ) # Resultado: 'Todos' ; 'Administradores de informes' ; 'Usuario de la consulta' Devuelve el pasaporte de Cognos® Access Manager. CAMPassport ( ) Ejemplo: # CAMPassport ( ) # Resultado: 111:98812d62-4fd4-037b-4354-26414cf7ebef:3677162321 Devuelve las partes de Cognos® Access Manager ID (CAMID) del usuario (nombre de cuenta, nombres de grupo, nombres de rol) como una lista de valores separados por comas. CAMIDList ( [ cadena_separador ] ) Ejemplo: #CAMIDList ( ) # Resultado: CAMID ( "::Todos" ) , CAMID ( ":Autores" ) , CAMID ( ":Usuarios de consultas" ) , CAMID ( ":Consumidores" ) , CAMID ( ":Autores de métricas" ) Devuelve una matriz de Cognos® Access Manager ID (CAMID) del usuario según el tipo de identidad (cuenta, grupo o rol). CAMIDListForType puede utilizarse con las funciones de macro csv o join. CAMIDListForType ( tipo de identidad ) Ejemplo: [qs].[rolUsuario] in ( # csv ( CAMIDListForType ( 'role' ) ) # ) Resultado: [qs].[rolUsuario] in ( 'CAMID ( "::Administradores del sistema" ) ' ; 'CAMID ( ":Autores" )' ) Concatena dos cadenas. valor1 + valor2 Ejemplo: # '{ ' + $runLocale + ' }' # Resultado: {en-us} Quita los caracteres iniciales del primer argumento. El segundo argumento opcional define el conjunto de caracteres que se quitará. De forma predeterminada, esta función quita el espacio en blanco (esto es, espacio, tabulador, retorno de carro y salto de línea). lstrip ( expresión_cadena [ ; conjunto_de_caracteres ] ) Ejemplo: # sq( lstrip ( ' abc ' ) ) # Resultado: 'abc ' Ejemplo: # lstrip ( ' 0053;2100 ' ; '0 \t\r\n' ) # Resultado: 53,2100 Devuelve el valor del parámetro de "parameterName" si se ha definido. Se devuelve el valor de "defaultText" si no existe "parameterName". Cuando se establece "datatype" en "string", el valor resultante se encierra entre comillas simples. El uso de esta función no generará una excepción de parámetro no incluido. ParamValue ( parameterName [ , defaultText [, datatype ] ] ) Ejemplo: # ParamValue ( 'p_country' ) # Resultado: 'Canada' - p_country se ha establecido Resultado: null - p_country no es un parámetro conocido Resultado: null - p_country se utiliza en una solicitud opcional y no está establecido Ejemplo: # ParamValue ( 'p_country' , 'Netherlands' ) # Resultado: 'Canada' - p_country se ha establecido Resultado: 'Netherlands' - p_country no es un parámetro conocido Resultado: 'Netherlands' - p_country se utiliza en una solicitud opcional y no está establecido Ejemplo: # ParamValue ( 'p_country', ' cast ( null as varchar(20)) ' , 'token' ) # Resultado: 'Canada' - p_country se ha establecido Resultado: cast ( null as varchar(20)) - p_country no es un parámetro conocido Resultado: cast ( null as varchar(20)) - p_country se utiliza en una solicitud opcional y no está establecido Solicita al usuario que especifique un solo valor o miembro. Sólo es obligatorio "nombre_solicitud". Cuando no se especifica el tipo de datos, se utiliza 'string' de forma predeterminada. La solicitud es opcional si está especificado "Textopredet". Cuando se especifique "Texto", irá delante del valor. Puede especificarse "elementoConsulta" para beneficiarse de las propiedades de solicitud de información de "elementoConsulta". Cuando se especifique "Texto_final", se añadirá al valor. Cuando el tipo de datos es 'memberuniquename', se crea una solicitud de selección de miembro única. Una práctica recomendable es proporcionar un valor predeterminado, como tercer argumento. El valor predeterminado debe ser un nombre exclusivo de miembro válido; también puede ser un alias que haga referencia a un nombre de miembro exclusivo, como se realiza en Report Studio. prompt ( nombre_solicitud ; tipo_datos ; textoPredeterminado ; texto ; elementoConsulta ; texto_final ) Ejemplo: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > #prompt ( 'CódigoPaísInicio' ; 'integer' ; '10' ) # Resultado: select. . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > 10 Ejemplo: [gosales].[COUNTRY].[COUNTRY] = # prompt ( 'countryPrompt' , 'string' , '''Canadá''' ) # Resultado: [gosales].[COUNTRY].[COUNTRY] = 'Canadá' Ejemplo: set ( #prompt ('myProduct', 'memberuniquename', '[Equipo acampada]', '', '[Ventas].[Producto].[Producto].[Línea de producto]')#) Resultado: set([Ventas].[Producto].[Producto].[Línea de producto]->[all].[1]) Se debe especificar el parámetro "Textopredet" de forma que sea un literal válido en el contexto de la macro, ya que no se produce ningún cambio de formateo en este valor. La cadena predeterminada '''Canadá''' del ejemplo 2 se ha especificado como una cadena entre comillas simples, en la que las comillas simples incluidas están duplicadas y, por lo tanto, son 3 comillas. El resultado es que la cadena se muestra correctamente entre comillas simples en la expresión. Como norma general para el tipo de datos de cadena, "Textopredet" debe especificarse siempre como éste, salvo en el contexto de un parámetro de procedimiento almacenado. Para "Textopredet" de los tipos 'date' o 'datetime', se debe utilizar un formato especial en el contexto de SQL. Los ejemplos de estos formatos son 'DATE ''25/12/2001''' y 'DATETIME ''25/12/2001 12:00:00'''. En todos los demás contextos, utilice la fecha/fecha y hora sin la palabra clave y las comillas simples de escape (p. ej. '12/25/2001'). Indica al usuario que especifique uno o más valores o miembros. Sólo es obligatorio "nombre_solicitud". Cuando no se especifica el tipo de datos, se utiliza 'string' de forma predeterminada. La solicitud es opcional si está especificado "Textopredet". Cuando se especifique "Texto", irá delante de la lista de valores. Puede especificarse "elementoConsulta" para beneficiarse de las propiedades de solicitud de información de "elementoConsulta". Cuando se especifique "Texto_final", se añadirá a la lista de valores. Cuando el tipo de datos es 'memberuniquename', se crea una solicitud de selección de miembro múltiple. Una práctica recomendable es proporcionar un valor predeterminado, como tercer argumento. El valor predeterminado debe ser un nombre exclusivo de miembro válido; también puede ser un alias que haga referencia a un nombre de miembro exclusivo, como se realiza en Report Studio. promptmany ( nombre_solicitud ; tipo_datos ; textoPredeterminado ; texto ; elementoConsulta ; texto_final ) Ejemplo: select . . . where COUNTRY_MULTILINGUAL.COUNTRY in ( # promptmany ( 'NombrePaís' ) # ) Resultado: select. . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canadá' ; 'Países Bajos' ; 'Rusia' ) Ejemplo: select . . . from gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL ; gosales.gosales.dbo.COUNTRY XX where COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE # promptmany ( 'CódigosPaís seleccionados' ; '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á' ; 'Países Bajos' ; 'Rusia' ) Ejemplo: set ( #promptmany ('myProduct', 'memberuniquename', '[Equipo acampada]', '', '[Ventas].[Producto].[Producto].[Línea de producto]')#) Resultado: set([Ventas].[Producto].[Producto].[Línea de producto]->[all].[1]; [Ventas].[Producto].[Producto].[Línea de producto]->[all].[2]) Ejecute una consulta para una única columna y devuelva el valor de la primera (únicamente) fila. El resultado no tiene formato, asegúrese de que encierra la llamada con sq ( ), según sea necesario. queryValue ( value_expression [ , filter_expression ] ) Ejemplo: # sq ( queryValue ( 'TheCalendar.TheWeekdayName' , 'TheCalendar.TheDate = 2018-06-06' ) ) # Resultado: 'Wednesday' Construye una matriz a partir de la lista de parámetros. array ( expresión_cadena|expresión_matriz { ; expresión_cadena|expresión_matriz } ) Ejemplo: # csv ( array ( 'a1' ; array ( 'x1' ; 'x2' ) ; 'a2' ) ) # Resultado: 'a1' ; 'x1' ; 'x2' ; 'a2' Construye una cadena a partir de los elementos de la matriz en la que los valores están separados por comas. También se pueden especificar el separador y las cadenas con comillas. El separador predeterminado es la coma ( ; ) y el carácter de comillas predeterminado es la comilla simple ( ' ). csv ( expresión_matriz [ ; cadena_separador [ ; cadena_comillas ] ] ) Ejemplo: # sq ( csv ( array ( 'a1' , 'a2' ) ) ) # Resultado: 'a1', 'a2' Obtiene una entrada del archivo de configuración de IBM® Cognos®. El parámetro distintivo_forzar_descodificación es opcional y debe ser uno de los siguientes: 'true' , '1', 1 , 'false', '0', 0. El valor predeterminado es 'false'. En casos excepcionales, distintivo_forzar_descodificación debe tener el valor true. Cuando distintivo_forzar_descodificación es true, se devolverá el valor de texto sin formato de la entrada de configuración para las entradas configuradas en la configuración de IBM® Cognos® mediante las propiedades avanzadas. En el caso de las entradas que no estén identificadas en las propiedades avanzadas, se devuelve una cadena vacía independientemente de la presencia de información cifrada. La entrada de las propiedades avanzadas es qs.getConfigurationEntry.1 y es una lista de nombres separados por punto y coma; de forma predeterminada, esta lista de nombres está vacía y las llamadas a esta función con el distintivo establecido en true devolverán una cadena vacía. getConfigurationEntry ( cadena_entrada ; distintivo_forzar_descodificación ) Ejemplo: # getConfigurationEntry ( 'serverLocale' ) # Resultado: en Devuelve una entrada desde un archivo de recursos. El primer argumento es el ID de recurso encontrado en el archivo de recursos. El segundo argumento opcional es el nombre del archivo de recursos sin el sufijo de entorno local, por ejemplo, 'mfwa4j' para el archivo de mensajes 'mfwa4j_en.properties'). El archivo de recursos predeterminado es 'xqejavamsgs'. El tercer argumento opcional es el entorno local, cuyo valor predeterminado es 'en'. getResourceString ( cadena_id_recurso [, cadena_archivo_recursos [ , cadena_entorno local] ] ) Ejemplo: # getResourceString ( 'XQE_BIN_binLow' ) # Resultado: XQE-BIN-0001 menor que %1 Ejemplo: # getResourceString ( 'MFW_UT_INTERNAL_ERROR' , 'mfw4j' , 'en' ) # Resultado: MFW-UT-1002 Se ha producido un problema interno. Póngase en contacto con el administrador del sistema. Busca y devuelve elementos de una matriz que coincidan con el modelo especificado en "cadena_modelo". Los únicos metacaracteres soportados son: ^ (inicio de palabra), $ (fin de palabra), ! (negate - solo está soportada en el primer carácter). grep ( cadena_modelo ; expresión_matriz ) Ejemplo: # sq ( csv ( grep ( 's' , array ( 'as', 'an', 'arts' ) ) ) ) # Resultado: 'as', 'arts' Ejemplo: # sq ( csv ( grep ( '^g' , array ( 'group', 'golf' ) ) ) ) # Resultado: 'grupo', 'golf' Ejemplo: # sq ( csv ( grep ( 's$' , array ( 'naranjas', 'mangos' ) ) ) ) # Resultado: 'naranjas', 'mangos' Ejemplo: # sq ( csv ( grep ( '!o' , array ( 'naranjas', 'manzanas' ) ) ) ) # Resultado: 'manzanas' Busque el desplazamiento en 'str' donde se encuentra 'substr'. Se devuelve el valor -1 si no se encuentra 'substr'. También puede proporcionar un valor de desplazamiento, 'offset', opcional para finalizar la búsqueda. El primer argumento 'str' también puede ser una expresión_matriz, en este caso se aplica la función a cada elemento de matriz y el resultado de la función es una matriz de valores. index ( str , substr [ , offset ] ) # index ( 'El caballo negro saltó por encima del cordero negro.', 'negro' ) # Resultado: 4 # index ( 'El caballo negro saltó por encima del cordero negro.', 'negro', 10 ) # Resultado: 32 # index ( 'El caballo negro saltó por encima del cordero negro.', 'verde' ) # Resultado: -1 # sq ( join ( ' | ', index ( array ('negro' , 'rojo', 'verde' ) , 'e' ) ) ) # Resultado: -1 | 1 | 2 Une los elementos de una matriz mediante "cadena_separador". join ( cadena_separador ; expresión_matriz ) Ejemplo: # sq ( join ( ' | | ' ; array ( 'as'; 'an'; 'arts' ) ) ) # Resultado: 'as | | an | | arts' Calcula el número de caracteres de exp_cadena. Si el argumento es una exprsión_matriz, el resultado será una matriz de valores, cada entrada será el número de caracteres de cada uno de los elementos de expresión_matriz. length ( expresión_cadena | expresión_matriz ) length ( 'abcdef' ) Resultado: 6 join ( '--', length ( array ( 'abcdef' , 'xyz' ) ) ) Resultado: 6--3 Busque el último desplazamiento en 'str' donde se encuentra 'substr'. Esta función se denomina índice inverso, puede verlo como si comenzara la exploración a partir del final de la cadena. Se devuelve el valor -1 si no se encuentra 'substr'. También puede proporcionar un valor de desplazamiento, 'offset', opcional para finalizar la búsqueda. El primer argumento 'str' puede ser una expresión_matriz, en este caso se aplica la función a cada elemento de matriz y el resultado de la función es una matriz de valores. rindex ( str , substr [ , desplazamiento ] ) # rindex ( 'El caballo negro saltó por encima del cordero negro.', 'negro' ) # Resultado: 32 # rindex ( 'El caballo negro saltó por encima del cordero negro.', 'negro', 10 ) # Resultado: 4 # rindex ( 'El caballo negro saltó por encima del cordero negro.', 'verde' ) # Resultado: -1 # sq ( join ( ' | ', rindex ( array ('negro' , 'rojo', 'verde' ) , 'e' ) ) ) # Resultado: -1 | 1 | 3 Quita los caracteres finales del primer argumento. El segundo argumento opcional define el conjunto de caracteres que se quitará. De forma predeterminada, esta función quita el espacio en blanco (esto es, espacio, tabulador, retorno de carro y salto de línea). rstrip ( expresión_cadena [ ; conjunto_de_caracteres ] ) Ejemplo: # sq( rstrip ( ' abc ' ) ) # Resultado: 'abc ' Ejemplo: # rstrip ( ' 0053;2100 ' ; '0 \t\r\n' ) # Resultado: 0053,21 Ordena alfabéticamente los elementos de la matriz. Los duplicados se mantienen. sort ( expresión_matriz ) Ejemplo: # csv ( sort ( array ( 's3'; 'a'; 'x' ) ) ) # Resultado: 'a', 's3', 'x' Divide una cadena o los elementos de una cadena de la matriz en elementos separados. split ( cadena_modelo; expresión_cadena|expresión_matriz ) Ejemplo: # sq ( csv ( split ( '::', 'ab=c::de=f::gh=i' ) ) ) # Resultado: 'ab=c', 'de=f', 'gh=i' Ejemplo: # sq ( csv ( split ( '=' , split ( '::', 'ab=c::de=f::gh=i' ) ) ) ) # Resultado: 'ab', 'c', 'de', 'f', 'gh', 'i' Quita los caracteres iniciales y finales del primer argumento. El segundo argumento opcional define el conjunto de caracteres que se quitará. De forma predeterminada, esta función quita el espacio en blanco (esto es, espacio, tabulador, retorno de carro y salto de línea). strip ( expresión_cadena [ ; conjunto_de_caracteres ] ) Ejemplo: # sq( strip ( ' abc ' ) ) # Resultado: 'abc' Ejemplo: # strip ( ' 0053;2100 ' ; '0 \t\r\n' ) # Resultado: 53,21 Busca un modelo en una cadena o en los elementos de una cadena de la matriz y sustituye la primera aparición de "cadena_modelo" por "cadena_sustitución". Los únicos metacaracteres soportados son: ^ (inicio de palabra), $ (fin de palabra) substitute ( cadena_modelo; cadena_sustitución; expresión_cadena|expresión_matriz ) Ejemplo: #sq ( substitute ( '^cn='; '***'; 'cn=help' ) )# Resultado: '***help' Ejemplo: # csv ( substitute ( '^cn='; '***'; array ( 'cn=help' ; 'acn=5' ) ) ) # Resultado: '***help' ; 'acn=5' Ejemplo: # csv ( substitute ( 'cn='; ''; array ( 'cn=help' ; 'acn=5' ) ) ) # Resultado: 'help', 'a5' Ejemplo: #sq ( substitute ( 'help$', '***', 'cn=help' ) )# Resultado: 'cn=***' Extrae una parte de 'expresión_cadena' comenzando en 'inicio_desplazamiento'. Puede especificar que se han de extraer el número de caracteres de 'longitud'. Si no se especifica 'longitud', se devuelve hasta el final de 'expresión_cadena'. El primer argumento también puede ser una expresión_matriz, en este caso se aplica la función a cada elemento de matriz y el resultado de la función es una matriz de cadena. substr ( expresión_cadena , inicio_desplazamiento [ , longitud ] ) substr ( 'El caballo es negro.', 0, 3 ) Resultado: El substr ( 'El caballo es negro.', 4 ) Resultado: caballo es negro. substr ( 'El caballo es negro', index ('El caballo es negro.' , 'verde' ) ) Resultado: El caballo es negro. join ( ' | ', substr ( array ('negro' , 'rojo', 'verde' ) , 2, 2 ) ) Resultado: ac | d | en substr ('over the moon', -2, 4) Resultados con un error: El segundo argumento de la función 'substr' debe ser mayor o igual a -1.' . Devuelve "expresión_cadena1", que representa una indicación de fecha y hora con huso horario, reducida de acuerdo con el formato especificado en "expresión_cadena2". El formato de "expresión_cadena2" debe ser uno de los siguientes: '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' o 'aaaa-mm-ddThh:mm:ss.ff3+hh:mm'. Las funciones de macro que devuelven una representación en forma de cadena de una indicación de fecha y hora con huso horario muestran de manera predeterminada una precisión de 9 dígitos para la fracción de los segundos. Las opciones de formato permiten reducir esta cifra hasta una precisión de 3 o 0. timestampMask ( expresión_cadena1 ; expresión_cadena2 ) Ejemplo: # timestampMask ( $current_timestamp ; 'aaaa-dd-mm' ) # Resultado: 2005-11-01 Ejemplo: # timestampMask (  '2005-11-01 12:00:00.000-05:00' ; 'aaaa-mm-dd hh:mm:ss+hh:mm' ) # Resultado: 2005-11-01 12:00:00-05:00 Ejemplo: # timestampMask (  '2005-11-01 12:00:00.123456789-05:00' ; 'aaaa-mm-ddThh:mm:ss+hh:mm.ff3+hh:mm' ) # Resultado: 2005-11-01T12:00:00.123-05:00 Devuelve la cadena que representa una indicación de fecha y hora con huso horario que resulta de ajustar "expresión_cadena" al huso horario del sistema operativo. Tenga en cuenta que la función de macro timestampMask() se puede utilizar para reducir la salida. toLocal ( expresión_cadena ) Ejemplo: # toLocal ( '2005-11-01 17:00:00.000-00:00' ) # donde el huso horario local del SO es -05:00 Resultado: 01-11-05 12:00:00.000000000-05:00 Ejemplo: # timestampMask ( toLocal ( '2005-11-01 17:00:00.000-00:00' ) ; 'aaaa-mm-dd hh:mm:ss+hh:mm' ) # donde el uso horario local del SO es -05:00 Resultado: 2005-11-01 12:00:00-05:00 Ejemplo: # toLocal ( '2005-11-01 13:30:00.000-03:30' ) # donde el huso horario local del SO es -05:00 Resultado: 01-11-05 12:00:00.000000000-05:00 Devuelve la cadena "expresión_cadena" con todos los caracteres convertidos a minúscula aplicando las reglas del entorno local definido en "cadena_entorno_local". Si no se ha especificado ningún entorno local, se utiliza el entorno local 'en'. tolower ( expresión_cadena [ ; cadena_entorno_local ] ) Ejemplo: # tolower ( 'ABC' ) # Resultado: abc Ejemplo: # tolower ( 'ABC' ; 'fr' ) # Resultado: abc Devuelve la cadena "expresión_cadena" con todos los caracteres convertidos a mayúscula aplicando las reglas del entorno local definido en "cadena_entorno_local". Si no se ha especificado la "cadena_entorno_local", se utiliza el entorno local 'en'. toupper ( expresión_cadena [ ; cadena_entorno_local ] ) Ejemplo: # toupper ( 'abc' ) # Resultado: ABC Ejemplo: # toupper ( 'abc' ; 'fr' ) # Resultado: ABC Devuelve la cadena que representa una indicación de fecha y hora con huso horario resultante de ajustar "expresión_cadena" al huso horario UTC de referencia de punto cero, también conocida como hora GMT. Tenga en cuenta que la función de macro timestampMask() se puede utilizar para reducir la salida. toUTC ( expresión_cadena ) Ejemplo: # toUTC ( '2005-11-01 12:00:00.000-05:00' ) # Resultado: 2005-11-01 17:00:00.000000000-00:00 Ejemplo: # 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:000,000-00:00 Ejemplo: # toUTC ( $current_timestamp ) # Resultado: 2005-11-01 17:00:00.000000000-00:00 Elimina las entradas duplicadas de la matriz. El orden de los elementos se mantiene. unique ( expresión_matriz ) # csv ( unique ( array ( 's3'; 'a'; 's3'; 'x' ) ) ) # Resultado: 's3', 'a', 'x' El URL codifica el argumento pasado. Esta función es útil cuando se especifican cadenas de conexión XML. urlencode ( prompt ( 'valorUsuario' ) ) urlencode ( prompt ( 'some_val' ) ) %27testValue%27 simple case Esta construcción de macro es la plantilla para un case simple, que incluye las funciones case, when, then, else y end. Tenga en cuenta que esta construcción de macro sólo está soportada en la modalidad DQM. CASE <expresión> WHEN <literal> THEN <expresión> [ELSE <expresión>] END Ejemplo: #CASE prompt('pDateRange';'token') WHEN 'Semana actual' THEN '[PR semana actual]' ELSE '[PR semana anterior]' END# Resultado: [PR semana actual]
Funciones de bloque Esta lista contiene las funciones utilizadas para acceder a los miembros de un conjunto, normalmente en el contexto de Analysis Studio. Devuelve los primeros miembros encontrados en el conjunto hasta "expresión_numérica_máxima" + "desbordamiento_expresión_numérica". Si se excede el valor de "expresión_numérica_máxima" + "desbordamiento_expresión_numérica", sólo se devolverá el número máximo de miembros. En el caso de un conjunto que sólo tenga un reducido número de miembros más que el valor de expresión_numérica_máxima especificado, el valor de desbordamiento_expresión_numérica permite incluir ese reducido conjunto de miembros adicionales. Si el conjunto tiene más miembros de los permitidos por el desbordamiento, sólo se devolverán los miembros indicados en expresión_numérica_máxima. _firstFromSet ( expresión_conjunto ; expresión_numérica_máxima ; desbordamiento_expresión_numérica ) _firstFromSet ( [viaje_aventuras].[Productos].[Productos].[Línea de producto] , 2 , 8 ) Resultado: Devuelve los cinco miembros del conjunto Línea de producto. Los dos primeros miembros se devuelven dentro del máximo y los tres miembros siguientes se devuelven como el desbordamiento. Equipo de acampada Equipo de golf Equipo de montañismo Protección aire libre Accesorios personales _firstFromSet ( [viaje_aventuras].[Productos].[Productos].[Línea de producto] , 2 , 2 ) Resultado: Equipo de acampada, Equipo de golf Devuelve el conjunto que contiene "expresión_miembro" cuando el tamaño de "expresión_conjunto" es mayor que "expresión_numérica"; es decir, se generará un nuevo miembro si el número de miembros de "expresión_conjunto" es mayor que el valor de "expresión_numérica" especificado. _remainderSet ( expresión_miembro; expresión_conjunto ; expresión_numérica ) _remainderSet ( member ( aggregate ( currentMeasure within set [viaje_aventuras].[Productos].[Productos].[Línea de producto] ) , 'Agregado de producto' , 'Agregado de producto' , [viaje_aventuras].[Productos].[Productos] ) ,  [viaje_aventuras].[Productos].[Productos].[Línea de producto] , 1 ) Resultado: Cantidad vendida del producto agregado