Fonctions spécifiques du fournisseur Constantes Une constante est une valeur fixe qu'il est possible d'utiliser dans une expression. Opérateurs Les opérateurs indiquent le mode de traitement des valeurs figurant de part et d'autre de ceux-ci. Les opérateurs sont semblables à des fonctions, dans le sens où ils traitent des données élémentaires et renvoient un résultat. date Insère la date système en cours. date-heure Insère la date-heure système en cours. heure avec fuseau horaire Insère une heure égale à zéro avec un fuseau horaire. horodatage avec fuseau horaire Insère un exemple d'horodatage avec fuseau horaire. Insère la valeur 'false'. intervalle Insère un intervalle à zéro : 000 00:00:00.000. intervalle de type Année Insère un intervalle de type Année égal à zéro : 0 année. intervalle de type Mois Insère un intervalle de type Mois égal à zéro : 0 mois. intervalle de type Année à mois Insère un intervalle année-mois : 0000-00 année à mois. intervalle de type Jour Insère un intervalle de type Jour égal à zéro : 0 jour. intervalle de type Heure Insère un intervalle de type Heure égal à zéro : 0 heure. intervalle de type Minute Insère un intervalle de type Minute égal à zéro : 0 minute. intervalle de type Seconde Insère un intervalle de type Seconde égal à zéro : 0 seconde. intervalle de type Jour à heure Insère un intervalle de type Jour à heure égal à zéro : 0 00 jour à heure. intervalle de type Jour à minute Insère un intervalle de type Jour à minute égal à zéro : 0 00:00 jour à minute. intervalle de type Jour à seconde Insère un intervalle de type Jour à seconde égal à zéro : 0 00:00:00.000000000 jour à seconde. intervalle de type Heure à minute Insère un intervalle de type Heure à minute de zéro : 00:00 heure à minute. intervalle de type Heure à seconde Insère un intervalle de type Heure à seconde de zéro : 00:00:00.000000000 heure à seconde. intervalle de type Minute à seconde Insère un intervalle de type Minute à seconde de zéro : 00:00.000000000 minute à seconde. Insère une valeur nulle si les conditions de l'expression ne sont pas satisfaites. numérique Insère le chiffre 0, qu'il est possible de remplacer par une autre valeur numérique. chaîne Insère une chaîne vide sous forme de deux guillemets entre lesquels vous pouvez saisir une chaîne. Heure Insère l'heure système en cours. Insère la valeur 'true'.
Identifie le début d'une expression. ( expression ) Identifie la fin d'une expression. ( expression ) Multiplie deux valeurs numériques. valeur1 * valeur2 , Sépare les différents éléments de l'expression. expression ( paramètre1; paramètre2 ) Divise deux valeurs numériques. valeur1 / valeur2 Concatène ou assemble deux chaînes. chaîne1 || chaîne2 Additionne deux valeurs numériques. valeur1 + valeur2 Soustrait deux valeurs numériques ou rend une valeur numérique négative. valeur1 - valeur2 ou - valeur Compare les valeurs représentées par "valeur1" et "valeur2" et extrait les valeurs inférieures à "valeur2". valeur1 < valeur2 Compare les valeurs représentées par "valeur1" et "valeur2" et extrait les valeurs inférieures ou égales à "valeur2". valeur1 <= valeur2 Compare les valeurs représentées par "valeur1" et "valeur2" et extrait les valeurs différentes de "valeur2". valeur1 <> valeur2 Compare les valeurs représentées par "valeur1" et "valeur2" et extrait les valeurs égales à "valeur2". valeur1 = valeur2 Compare les valeurs représentées par "valeur1" et "valeur2" et extrait les valeurs supérieures à "valeur2". valeur1 > valeur2 Sépare les composants d'une expression de membre littérale. [espace-noms].[dimension].[hiérarchie].[niveau]->[L1] Compare les valeurs représentées par "valeur1" et "valeur2" et extrait les valeurs supérieures ou égales à "valeur2". valeur1 >= valeur2 Prend la valeur "true" si au moins une des conditions de l'expression est vraie. argument1 and argument2 Fonctionne avec des expressions de récapitulatif afin de déterminer la portée à ajuster en fonction des colonnes de regroupement de la requête. La portée dépend du contexte. aggregate_function ( expression AUTO ) Détermine si une valeur se situe à l'intérieur d'une plage donnée. expression between valeur1 and valeur2 Exemple : [Revenue] between 200 and 300 Résultat : Renvoie le nombre de résultats correspondant aux revenus compris entre 200 et 300. Revenue Between ---- ---- $332.06 false $230.55 true $107.94 false Fonctionne avec when, then, else et end. "Case" identifie le début d'une situation spécifique dans laquelle des actions when, then et else sont définies. case expression { when expression then expression } [ else expression ] end Détermine si "chaîne1" contient "chaîne2". Cette syntaxe prend en charge les deux métacaractères : le signe pourcentage (%) représente zéro, un ou plusieurs caractères, et le trait de soulignement (_) représente n'importe quel caractère. Le mot clé LITERAL facultatif indique comment '%' et '_' sont interprétés. Lorsque le mot clé LITERAL est indiqué, '%' et '_' ne doivent pas être traités comme des métacaractères (voir les exemples 3 et 5). Si le mot clé LITERAL est omis, '%' et '_' se comportent comme des métacaractères (voir les exemples 1, 2 et 4). chaîne1 contains [LITERAL] chaîne2 Exemple 1 : [LIGNE_PRODUITS] contains 'Plein' Résultat 1 : Plein air - Matériel Exemple 2 : [LIGNE_PRODUITS] contains 'Golf%' Résultat 2 : Golf - Matériel Exemple 3 : [LIGNE_PRODUITS] contains literal 'Golf%' Résultat 3 : Golf% Exemple 4 : [LIGNE_PRODUITS] contains 'Année_En_Cours%' Résultat 4 : Année En Cours - Prix, Année En Cours - Prix%, Année_En_Cours - Prix%. Exemple 5 : [LIGNE_PRODUITS] contains literal 'Année_En_Cours%' Résultat 5 : Année_En_Cours%. Mot clé qui peut être utilisé comme premier argument dans les fonctions récapitulatives de membre. Cette fonction apparaît dans l'exemple de rapport Revenus totaux par pays, accessible dans le module de requête Entrepôt de données VA. aggregate_function ( currentMeasure within set expression ) current_date Renvoie la date en cours de la base de données current_date Fonctionne avec la syntaxe "lookup". lookup (....) in (....) default (....) Mot clé utilisé dans une expression d'agrégat afin d'inclure uniquement les occurrences distinctes des valeurs. Voir également la fonction "unique ". distinct dataItem Exemple : count ( distinct [Quantité_détail_commande] ) Résultat : 1704 Fonctionne avec les syntaxes If ou Case. Si la condition "if" de l'expression "case" ne vaut pas "true", l'expression "else" est utilisée. Cette fonction apparaît dans l'exemple de rapport Les 10 meilleurs détaillants de 2005 dans le module d'analyse Entrepôt de données VA. if ( condition ) then .... else ( expression ) ; ou case .... else ( expression ) end Indique la fin d'une syntaxe "case" ou "when". case .... end Détermine si "chaîne1" se termine par "chaîne2". Cette syntaxe prend en charge les deux métacaractères : le signe pourcentage (%) représente zéro, un ou plusieurs caractères, et le trait de soulignement (_) représente n'importe quel caractère. Le mot clé LITERAL facultatif indique comment '%' et '_' sont interprétés. Lorsque le mot clé LITERAL est indiqué, '%' et '_' ne doivent pas être traités comme des métacaractères (voir les exemples 3 et 5). Si le mot clé LITERAL est omis, '%' et '_' se comportent comme des métacaractères (voir les exemples 1, 2 et 4). chaîne1 ends with [LITERAL] chaîne2 Exemple 1 : [LIGNE_PRODUITS] ends with 'Matériel' Résultat 1 : Camping - Matériel, Golf - Matériel Exemple 2 : [LIGNE_PRODUITS] ends with '%Matériel' Résultat 2 : Golf - Matériel, Camping - Matériel Exemple 3 : [LIGNE_PRODUITS] ends with literal 'Matériel%' Résultat 3 : Matériel% Exemple 4 : [LIGNE_PRODUITS] ends with '%Prix' Résultat 4 : Produits - Prix, Année_En_Cours - Prix Exemple 5 : [LIGNE_PRODUITS] ends with literal '%Prix' Résultat 5 : %Prix Détermine si "chaîne1" correspond à la structure de "chaîne2", avec le caractère "car" utilisé de manière facultative en caractère d'échappement dans la chaîne de modèle. chaîne1 LIKE chaîne2 [ ESCAPE car ] Exemple : [LIGNE_PRODUITS] like 'G%' Résultat : toutes les lignes de produits commençant par 'G'. Exemple : [LIGNE_PRODUITS] like '%Ga%' escape 'a' Résultat : toutes les lignes de produits finissant par 'G'. Fonctionne avec des expressions de récapitulatif pour définir la portée de l'agrégation dans la requête. aggregate_function ( expression for expression { ; expression } ) Fonctionne avec des expressions de récapitulatif pour déterminer la portée à ajuster en fonction d'un sous-ensemble des colonnes de regroupement de la requête. Equivalent à la clause "for". aggregate_function ( expression for ANY expression { ; expression } ) Fonctionne avec des expressions de récapitulatif afin de déterminer la portée à ajuster en fonction de toutes les colonnes de regroupement de la requête. Voir également la clause "for". aggregate_function ( expression for ALL expression { ; expression } ) Fonctionne avec des expressions de récapitulatif afin de définir la portée à l'ensemble de la requête. Voir également la clause "for". Cette fonction apparaît dans l'exemple de rapport Retours et satisfaction des clients, accessible dans le module d'analyse Entrepôt de données VA. aggregate_function ( expression for report ) Fonctionne avec les syntaxes Then et Else. "If" définit une condition ; lorsque la condition "if" vaut "true", l'expression "then" est utilisée. Lorsque la condition "if" ne vaut pas "true", l'expression "else" est utilisée. Cette fonction apparaît dans l'exemple de rapport Les 10 meilleurs détaillants de 2005 dans le module d'analyse Entrepôt de données VA. if ( condition ) then ( expression ) else ( expression ) Détermine si "expression1" se trouve dans une liste d'expressions donnée. expression1 in ( liste_expressions ) Détermine si "expression1" existe dans une liste de valeurs constantes ou de plages donnée. expression1 in_range { constante : constante [ ; constante : constante ] } Exemple : [code] in_range { 5 } Résultat : Equivalent à [code] = 5. Exemple : [code] in_range { 5: } Résultat : Equivalent à [code] >= 5. Exemple : [code] in_range { :5 } Résultat : Equivalent à [code] <= 5. Exemple : [code] in_range { 5:10 } Résultat : Equivalent à ( [code] >= 5 et [code] <= 10 ). Exemple : [code] in_range { :5;10;20: } Résultat : Equivalent à ( [code] <= 5 ou [code] = 10 ou [code] >= 20 ). Détermine si "valeur" n'est pas définie dans les données. "valeur" is missing Détermine si "valeur" n'est pas définie dans les données. "valeur" is null Détermine si "valeur" est définie dans les données. "valeur" is not missing Détermine si "valeur" est définie dans les données. "valeur" is not null Détermine si "chaîne1" correspond à la structure de "chaîne2", avec le caractère "car" utilisé de manière facultative en caractère d'échappement dans la chaîne de modèle. Cette syntaxe prend en charge les deux métacaractères : le signe pourcentage (%) représente zéro, un ou plusieurs caractères, et le trait de soulignement (_) représente n'importe quel caractère. chaîne1 LIKE chaîne2 [ ESCAPE car ] Exemple 1 : [LIGNE_PRODUITS] like 'G%' Résultat : toutes les lignes de produits commençant par 'G'. Exemple 2 : [LIGNE_PRODUITS] like '%Ga%' escape 'a' Résultat 2 : toutes les lignes de produits finissant par 'G%'. Exemple 3 : [LIGNE_PRODUITS] like 'C_R_' Résultat 3 : Toutes les lignes de produits portant le nom CIRE ou CURE. Exemple : lookup ( [Pays]) in ( 'Canada'--> ( [Prix catalogue] * 0,60); 'Australie'--> ( [Prix catalogue] * 0,80 ) ) default ( [Prix catalogue] ) Recherche les données indiquées et les remplace par la valeur définie par l'utilisateur. Il est préférable d'utiliser la syntaxe "case". lookup ( nom ) in ( valeur1 --> valeur2 ) default ( expression ) Prend la valeur TRUE si "argument" est faux, ou FALSE dans le cas contraire. NOT argument Renvoie TRUE si "argument1" ou "argument2" vaut "true". argument1 or argument2 Effectue un calcul récapitulatif avant d'appliquer le filtre de récapitulatif. fonction_récapitulatif ([expression] prefilter) Exemple : total ( [Quantité] for report prefilter ) Filtre récapitulatif : total( [Quantité] for [Numéro de produit] ) > 50000 Résultat : Additionne les quantités dans un rapport avant l'application du filtre récapitulatif. 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 Compte le nombre de lignes dans le résultat de la requête. Utiliser en conjonction avec Count(). count ( ROWS ) Compte le nombre de lignes dans le résultat de la requête. Utiliser en conjonction avec Count(). count ( ROWS  [ expression ]) Détermine si "chaîne1" commence par "chaîne2". Cette syntaxe prend en charge les deux métacaractères : le signe pourcentage (%) représente zéro, un ou plusieurs caractères, et le trait de soulignement (_) représente n'importe quel caractère. Le mot clé LITERAL facultatif indique comment '%' et '_' sont interprétés. Lorsque le mot clé LITERAL est indiqué, '%' et '_' ne doivent pas être traités comme des métacaractères (voir les exemples 3 et 5). Si le mot clé LITERAL est omis, '%' et '_' se comportent comme des métacaractères (voir les exemples 1, 2 et 4). chaîne1 starts with [LITERAL] chaîne2 Exemple 1 : [LIGNE_PRODUITS] starts with 'Golf' Résultat 1 : Golf - Matériel Exemple 2 : [LIGNE_PRODUITS] starts with 'Plein%' Résultat 2 : Plein Air - Matériel Exemple 3 : [LIGNE_PRODUITS] starts with literal 'Golf%' Résultat 3 : Golf% Exemple 4 : [LIGNE_PRODUITS] starts par 'Année_En_Cours%' Résultat 4 : Année En Cours - Prix, Année En Cours - Prix%, Année_En_Cours Prix% Exemple 5 : [LIGNES_PRODUITS] starts with literal 'Année_En_Cours%' Résultat 5 : Année_En_Cours% Fonctionne avec les syntaxes If ou Case. Si la condition "if" ou l'expression "when" valent "true", l'expression "then" est utilisée. Cette fonction apparaît dans l'exemple de rapport Les 10 meilleurs détaillants de 2005 dans le module d'analyse Entrepôt de données VA. if ( condition ) then ..., or case expression when expression then .... end Fonctionne avec la syntaxe Case. Vous pouvez définir les conditions exercées lorsque l'expression WHEN vaut True. case [expression] when ... end
Récapitulatifs Cette liste contient des fonctions prédéfinies qui renvoient soit une valeur récapitulative unique pour un groupe de valeurs liées, soit une valeur récapitulative différente pour chaque instance d'un groupe de valeurs liées. Renvoie une valeur calculée à l'aide de la fonction d'agrégation appropriée, selon le type d'agrégation de l'expression. Cette fonction apparaît dans l'exemple de rapport Données budgétaires par rapport aux données réelles, accessible dans le module d'analyse Entrepôt de données VA. aggregate ( expression [ auto ] ) aggregate ( expression for [ all|any ] expression { ; expression } ) aggregate ( expression for report ) Renvoie la valeur moyenne des données élémentaires sélectionnées. "Distinct" est une expression alternative compatible avec les versions précédentes du produit. average ( [ distinct ] expression [ auto ] ) average ( [ distinct ] expression for [ all|any ] expression { ; expression } ) average ( [ distinct ] expression for report ) Exemple : average ( Ventes ) Résultat : Renvoie la moyenne de toutes les valeurs des ventes. Renvoie le nombre de données élémentaires sélectionnées, sans compter les valeurs nulles. "Distinct" est une expression alternative compatible avec les versions précédentes du produit. All est pris en charge en mode DQM seulement et évite la présomption de double comptage d'une donnée élémentaire dans une table de dimension. count ( [ all | distinct ] expression [ auto ] ) count ( [ all | distinct ] expression for [ all|any ] expression { ; expression } ) count ( [ all | distinct ] expression for report ) Exemple : count ( Ventes ) Résultat : Renvoie le nombre total d'entrées sous Ventes. Renvoie la valeur maximale des données élémentaires sélectionnées. "Distinct" est une expression alternative compatible avec les versions précédentes du produit. maximum ( [ distinct ] expression [ auto ] ) maximum ( [ distinct ] expression for [ all|any ] expression { ; expression } ) maximum ( [ distinct ] expression for report ) Exemple : maximum ( Ventes ) Résultat : Renvoie la valeur maximale de toutes les valeurs des ventes. Renvoie la valeur médiane des données élémentaires sélectionnées. median ( expression [ auto ] ) median ( expression for [ all|any ] expression { ; expression } ) median ( expression for report ) Renvoie la valeur minimale des données élémentaires sélectionnées. "Distinct" est une expression alternative compatible avec les versions précédentes du produit. minimum ( [ distinct ] expression [ auto ] ) minimum ( [ distinct ] expression for [ all|any ] expression { ; expression } ) minimum ( [ distinct ] expression for report ) Exemple : minimum ( Ventes ) Résultat : Renvoie la valeur minimale de toutes les valeurs des ventes. Renvoie une moyenne mobile par ligne pour un ensemble de valeurs donné par rapport à un nombre de lignes indiqué. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. moving-average ( expression_numérique ; expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) moving-average (  expression_numérique ; expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : moving-average ( Qté ; 3 ) Résultat : Renvoie, pour chaque ligne, la quantité et la moyenne mobile de la ligne en cours et des deux lignes précédentes. Qty Moving-Average (Qty, 3) ------ ------------------------------------ 200 200 700 450 400 433.3333 200 433.3333 200 266.6667 500 300.0000 Renvoie une somme mobile par ligne pour un ensemble de valeurs donné par rapport à un nombre de lignes indiqué. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. moving-total ( expression_numérique ; expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) moving-total (  expression_numérique ; expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : moving-total ( Qté ; 3 ) Résultat : Renvoie, pour chaque ligne, la quantité et le total mobile de la ligne en cours et des deux lignes précédentes. Qty Moving-Total (Qty, 3) ------ -------------------------------- 200 200 700 900 400 1300 200 1300 200 800 500 900 Renvoie le pourcentage de la valeur totale des données élémentaires sélectionnées. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. Cette fonction apparaît dans l'exemple de rapport interactif Calcul de pourcentage (par année). percentage ( expression_numérique [ at expression  { ; expression } ] [ <for-option> ] [ prefilter ] ) percentage (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : percentage ( Ventes 98 ) Résultat : Renvoie le pourcentage des ventes totales de 1998 qui est attribuable à chacun des représentants des ventes. Employee Sales 98 Percentage --------- --------- ------------- Gibbons 60646 7.11% Flertjan 62523 7.35% Cornel 22396 2.63% Renvoie une valeur indiquant, sur une échelle de 100, quel pourcentage d'une distribution est inférieur ou égal aux données élémentaires sélectionnées. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. percentile ( expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) percentile (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : percentile ( Ventes 98 ) Résultat : Pour chaque ligne, renvoie le pourcentage des lignes dont la valeur est égale ou inférieure à la valeur de quantité de cette ligne. 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 Renvoie le classement d'une valeur à l'intérieur de la plage que vous avez indiquée. Le classement est exprimé sous la forme d'entiers permettant de représenter toute plage, par exemple de 1 (le plus élevé) à 100 (le plus bas). L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. quantile ( expression_numérique ; expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) quantile (  expression_numérique ; expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : quantile ( Qté ; 4 ) Résultat : Renvoie la quantité, le classement de la valeur de quantité et les valeurs de quantité séparées en 4 groupes quantiles (quartiles). 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 Renvoie le classement d'une valeur dans un groupe de valeurs, exprimé sous forme d'entiers compris entre 1 (le plus élevé) et 4 (le plus bas). L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. quartile ( expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) quartile (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : quartile ( Qté ) Résultat : Renvoie la quantité et le quartile de la valeur de quantité représentée sous forme d'entier allant de 1 (le plus élevé) à 4 (le plus bas). Qty Quartile (Qty) ------ --------------------- 450 1 400 1 350 2 300 2 250 3 200 3 150 4 100 4 Renvoie le classement des données élémentaires sélectionnées. L'ordre de tri est facultatif ; l'ordre décroissant (DESC) est utilisé par défaut. Si deux lignes ou plus sont égales, cela signifie qu'il manque une valeur dans la suite de valeurs classées (également appelée classement olympique). L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. "Distinct" est une expression alternative compatible avec les versions précédentes du produit. Les valeurs nulles apparaissent en dernier dans le classement. Cette fonction apparaît dans l'exemple de rapport Les 10 meilleurs détaillants de 2005 dans le module d'analyse Entrepôt de données VA. rank ( expression [ ASC|DESC ] { ; expression [ ASC|DESC ] } [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) rank ( [ distinct ] expression [ ASC|DESC ] { ; expression [ ASC|DESC ] } [ <for-option>] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : rank ( Ventes 98 ) Résultat : Renvoie, pour chaque ligne, le classement de la valeur des ventes pour 1998 qui est attribuée à chacun des représentants des ventes. Certains nombres sont ignorés lorsque des lignes sont égales. Employee Sales 98 Rank --------- --------- ------------ Gibbons 60000 1 Flertjan 50000 2 Cornel 50000 2 Smith 48000 4 Renvoie la moyenne cumulative par ligne (y compris la ligne active) pour un ensemble de valeurs. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. running-average ( expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-average (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : running-average ( Qté ) Résultat : Renvoie, pour chaque ligne, la quantité et la moyenne cumulative de la ligne en cours et des lignes précédentes. 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 Renvoie le nombre cumulatif par ligne (y compris la ligne active) pour un ensemble de valeurs. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. running-count ( expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-count (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : running-count ( Qté ) Résultat : Renvoie, pour chaque ligne, la quantité et le nombre cumulatif de la position de la ligne en cours. 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 Renvoie un écart cumulatif par ligne, c'est-à-dire la différence entre la valeur de la ligne active et celle de la ligne qui la précède (y compris la ligne active) pour un ensemble de valeurs. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. running-difference ( expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-difference (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : running-difference ( Qté ) Résultat : Renvoie, pour chaque ligne, la quantité et la différence cumulative entre la valeur de la ligne en cours et celle de la ligne précédente. Name Qty Running-Difference for name ------- ------ --------------------------- Smith 7 NULL Smith 3 -4 Smith 6 3 Smith 4 -2 Wong 3 -1 Wong 5 2 Renvoie la valeur maximale cumulative par ligne (y compris la ligne active) pour un ensemble de valeurs. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. running-maximum ( expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-maximum (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : running-maximum ( Qté ) Résultat : Renvoie, pour chaque ligne, la quantité et la valeur maximale courante de la ligne en cours et des lignes précédentes. 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 Renvoie la valeur minimale cumulative par ligne (y compris la ligne active) pour un ensemble de valeurs. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. running-minimum ( expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-minimum (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : running-minimum ( Qté ) Résultat : Renvoie, pour chaque ligne, la quantité et la valeur minimale courante de la ligne en cours et des lignes précédentes. 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 Renvoie un total cumulatif par ligne (y compris la ligne active) pour un ensemble de valeurs. L'option "<for-option>" définit la portée de la fonction. L'option "at" définit le niveau d'agrégation et peut seulement être utilisée dans le contexte de sources de données relationnelles. running-total ( expression_numérique [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-total (  expression_numérique [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Exemple : running-total ( Qté ) Résultat : Renvoie, pour chaque ligne, la quantité et le total cumulatif de la ligne en cours et des lignes précédentes. 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 Renvoie l'écart-type des données élémentaires sélectionnées. standard-deviation ( expression [ auto ] ) standard-deviation ( expression for [ all|any ] expression { ; expression } ) standard-deviation ( expression for report ) Exemple : standard-deviation ( CoûtProduit ) Résultat : Renvoie une valeur indiquant l'écart-type entre les coûts des produits et le coût de produit moyen. Calcule l'écart-type de population et renvoie la racine carrée de la variance de population. standard-deviation-pop ( expression [ auto ] ) standard-deviation-pop ( expression for [ all|any ] expression { ; expression } ) standard-deviation-pop ( expression for report ) Exemple : standard-deviation-pop ( CoûtProduit ) Résultat : Renvoie la valeur de la racine carrée de la variance de population. Calcule l'écart-type de l'échantillon et renvoie la racine carrée de la variance de population. standard-deviation-samp (  expression [ auto ] ) standard-deviation-samp (  expression for [ all|any ] expression { ; expression } ) standard-deviation-samp (  expression for report ) Exemple : standard-deviation-samp ( CoûtProduit ) Résultat : Renvoie la valeur de la racine carrée de la variance d'échantillon. La valeur renvoyée représente le classement d'une valeur dans un groupe : haut, moyen ou bas. tertile ( expression [ auto ] ) tertile ( expression for [ all|any ] expression { ; expression } ) tertile ( expression for report ) Exemple : tertile ( Qté ) Résultat : Renvoie la quantité, le quantile de la valeur de quantité séparé en deux tertiles et les valeurs de quantité séparées en tertiles. Qty Quantile (Qty, 3) Tertile (Qty) ------ ------------------------ ------------------ 800 1 H 700 1 H 500 2 M 400 2 M 200 3 L 200 3 L Renvoie la valeur totale des données élémentaires sélectionnées. "Distinct" est une expression alternative compatible avec les versions précédentes du produit. Cette fonction apparaît dans l'exemple de rapport Données budgétaires par rapport aux données réelles, accessible dans le module d'analyse Entrepôt de données VA. total ( [ distinct ] expression [ auto ] ) total ( [ distinct ] expression for [ all|any ] expression { ; expression } ) total ( [ distinct ] expression for report ) Exemple : total ( Ventes ) Résultat : Renvoie la valeur totale de toutes les valeurs des ventes. Fonctions statistiques Les fonctions récapitulatives contenues dans cette liste sont de nature statistique. Renvoie la variance des données élémentaires sélectionnées. variance ( expression [ auto ] ) variance ( expression for [ all|any ] expression { ; expression } ) variance ( expression for report ) Exemple : variance ( CoûtProduit ) Résultat : Affiche une valeur indiquant l'ampleur de l'écart entre le coût réel et le coût moyen des produits. Renvoie la variance de population d'un ensemble de chiffres après suppression des valeurs nulles. variance-pop ( expression [ auto ] ) variance-pop ( expression for [ all|any ] expression { ; expression } ) variance-pop ( expression for report ) Exemple : variance-pop ( Qté ) Résultat : Renvoie, pour chaque ligne, la variance de population d'un ensemble de chiffres après la suppression des valeurs nulles de cet ensemble. Renvoie la variance d'échantillon d'un ensemble de chiffres après suppression des valeurs nulles. variance-samp (  expression [ auto ] ) variance-samp (  expression for [ all|any ] expression { ; expression } ) variance-samp (  expression for report ) Exemple : variance-samp ( Qté ) Résultat : Renvoie, pour chaque ligne, la variance d'échantillon d'un ensemble de chiffres après la suppression des valeurs nulles de cet ensemble. corr ( expression_numérique1 ;  expression_numérique2  [ auto ] ) corr ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) corr ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie le coefficient de corrélation d'un ensemble de paires de nombres. Le calcul est le suivant : COVAR_POP(expression_numérique1, expression_numérique2) / (STDDEV_POP(expression_numérique1) * STDDEV_POP(expression_numérique2)) Exemple : corr ( Coût ;  Marge  for report) Résultat : Renvoie le coefficient de corrélation entre Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) covariance-pop ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) covariance-pop ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie la covariance de population d'un ensemble de paires de nombres. Exemple : covariance-pop ( Coût ;  Marge  for report) Résultat : Renvoie la covariance de population entre Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) covariance-samp ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) covariance-samp ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie la covariance d'échantillon d'un ensemble de paires de nombres. Exemple : covariance-samp ( Coût ;  Marge  for report) Résultat : Renvoie la covariance d'échantillon entre Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-average-x ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-average-x ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie la moyenne de la variable indépendante (expression_numérique2) de la courbe de régression. Exemple : regression-average-x ( Coût ;  Marge  for report) Résultat : Renvoie la moyenne de Marge de la courbe de régression pour Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-average-y ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-average-y ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie la moyenne de la variable dépendante (expression_numérique1) de la courbe de régression. Exemple : regression-average-y ( Coût ;  Marge  for report) Résultat : Renvoie la moyenne de Coût de la courbe de régression pour Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-count ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-count ( expression_numérique1 ;  expression_numérique2 for report ) Renvoi le nombre de nombres non nuls utilisés pour tracer la courbe de régression. Exemple : regression-count ( Coût ;  Marge  for report) Résultat : Renvoie le nombre de nombres non nuls utilisés pour tracer la courbe de régression pour Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-intercept ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-intercept ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie la valeur de y-intercept de la courbe de régression. Le calcul est le suivant: AVG(expression_numérique1) - REGR_SLOPE(expression_numérique1, expression_numérique2) * AVG(expression_numérique2) Exemple : regression-intercept ( Coût ;  Marge  for report) Résultat : Renvoie la valeur y-intercept de la courbe de régression pour Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-r2 ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-r2 ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie le coefficient de détermination (aussi appelé "R carré" ou "qualité de l'ajustement") de la courbe de régression. Cette valeur est calculée en fonction des conditions suivantes : IF VAR_POP(expression_numérique2) = 0 THEN NULL IF VAR_POP(expression_numérique1) = 0 AND VAR_POP(expression_numérique2) <> 0 THEN 1 IF VAR_POP(expression_numérique1) > 0 and VAR_POP(expression_numérique2) <> 0 THEN POWER(CORR (expression_numérique1; expression_numérique2)) Exemple : regression-r2 ( Coût ;  Marge  for report) Résultat : Renvoie le coefficient de détermination de la courbe de régression pour Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-slope ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-slope ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie la pente de la courbe de régression. Le calcul est le suivant : COVAR_POP(expression_numérique1,expression_numérique2) / VAR_POP(expression_numérique2) Exemple : regression-slope ( Coût ;  Marge ) Résultat : Renvoie la pente de la courbe de régression pour Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-sxx ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-sxx ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie le calcul suivant après élimination des paires NULL : REGR_COUNT(expression_numérique1, expression_numérique2) * VAR_POP(expression_numérique2) Exemple : regression-sxx ( Coût ;  Marge  for report) Résultat : Renvoie le calcul sxx de la courbe de régression pour Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-sxy ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-sxy ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie le calcul suivant après élimination des paires NULL : REGR_COUNT(expression_numérique1, expression_numérique2) * COVAR_POP(expression_numérique1, expression_numérique2) Exemple : regression-sxy ( Coût ;  Marge  for report) Résultat : Renvoie le calcul sxy de la courbe de régression pour Coût et Marge. 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 ( expression_numérique1 ;  expression_numérique2 ) regression-syy ( expression_numérique1 ;  expression_numérique2 for [ all|any ] expression { ; expression } ) regression-syy ( expression_numérique1 ;  expression_numérique2 for report ) Renvoie le calcul suivant après élimination des paires NULL : REGR_COUNT(expression_numérique1, expression_numérique2) * VAR_POP(expression_numérique1) Exemple : regression-syy ( Coût ;  Marge  for report) Résultat : Renvoie le calcul syy de la courbe de régression pour Coût et Marge. 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 Récapitulatifs des membres Cette liste contient des fonctions prédéfinies qui renvoient soit une valeur récapitulative unique pour un groupe de valeurs associées, soit une valeur récapitulative différente pour chaque instance d'un groupe de valeurs associées.
Erreur L'expression contient une erreur au jeton mis en évidence.
Syntaxes Cette liste contient des syntaxes et des modèles que vous pouvez utiliser pour créer une expression. Les modèles combinent plusieurs fonctions au sein d'un groupe. Le modèle "search case", par exemple, inclut les fonctions Case, When, Else et End. case (recherche) Cette syntaxe correspond au modèle d'une instruction CASE recherchée comprenant les fonctions CASE, WHEN, ELSE et END. CASE WHEN [Pays] = 'Canada' THEN ([Prix catalogue] * 0,60) WHEN [Code pays] > 100 THEN [Prix catalogue] * 0,80 ELSE [Prix catalogue] END case (simple) Cette syntaxe correspond au modèle d'une instruction CASE simple comprenant les fonctions CASE, WHEN, ELSE et END. CASE [Pays] WHEN 'Canada' THEN ([Prix catalogue] * 0,60) WHEN 'Australie' THEN [Prix catalogue] * 0,80 ELSE [Prix catalogue] END if then else Cette syntaxe correspond au modèle d'une instruction if...then...else. Cette syntaxe apparaît dans l'exemple de rapport Les 10 meilleurs détaillants de 2005, accessible dans le module d'analyse Entrepôt de données VA. IF ([Pays] = 'Canada') THEN ([Prix de liste] * 0,60) ELSE ([Prix de liste]) in_range Modèle d'une expression in_range. [code] IN_RANGE { :30 ; 40; 50; 999: } Exemple : [code] IN_RANGE { 5 } Résultat : Equivalent à [code] = 5. Exemple : [code] IN_RANGE { 5: } Résultat : Equivalent à [code] >= 5. Exemple : [code] IN_RANGE { :5 } Résultat : Equivalent à [code] <= 5. Exemple : [code] IN_RANGE { 5:10 } Résultat : Equivalent à ( [code] >= 5 et [code] <= 10 ). Exemple : [code] IN_RANGE { :5;10;20: } Résultat : Equivalent à ( [code] <= 5 ou [code] = 10 ou [code] >= 20 ).
Prédicats de période Cette liste contient les prédicats qui peuvent être utilisés pour comparer les expressions de période. contient Renvoie "true" si "expression_période1" contient "expression_période2" ; c'est-à-dire que "true" est renvoyé si la première période contient la valeur date-heure ou toutes les valeurs de la seconde période. expression_période1 contains ( expression_période2 | expression_date-heure ) period( 1989-11-01, 1991-05-19 ) contains period( 1991-05-19, 1991-06-04 ) Résultat : false period( 1989-11-01, 1991-05-19 ) contains period( 1990-05-19, 1991-04-04 ) Résultat : true period( 1989-11-01, 1991-05-19 ) contains 1991-04-04 Résultat : true equals Renvoie "true" si "expression_période1" et "expression_période2" ont les mêmes valeurs de début et de fin de période. expression_période1 equals expression_période2 period( 1989-11-01, 1991-05-19 ) equals period( 1989-11-01, 1991-05-19 ) Résultat : true immediately precedes Renvoie "true" si "expression_période1" précède immédiatement "expression_période2" ; c'est-à-dire si la valeur de fin de la première période est égale à la valeur de départ de la seconde période. expression_période1 immediately precedes expression_période2 period( 1989-11-01, 1991-05-19 ) immediately precedes period( 1991-05-19, 1991-06-04 ) Résultat : true period( 1989-11-01, 1991-05-18 ) immediately precedes period( 1991-05-19, 1991-06-04 ) Résultat : false immediately succeeds Renvoie "true" si "expression_période1" succède immédiatement à "expression_période2" ; c'est-à-dire si la valeur de début de la première période est égale à la valeur de fin de la seconde période. expression_période1 immediately succeeds expression_période2 period( 1991-05-19, 1994-01-10 ) immediately succeeds period( 1991-01-19, 1991-05-19 ) Résultat : true period( 1991-05-19, 1994-01-10 ) immediately succeeds period( 1991-01-20, 1991-05-18 ) Résultat : false overlaps Renvoie "true" si "expression_période1" chevauche "expression_période2" ; c'est-à-dire si ces expressions ont au moins une valeur en commun. expression_période1 overlaps expression_période2 period( 1991-05-19, 1994-01-10 ) overlaps period( 1993-01-19, 1995-05-19 ) Résultat : true precedes Renvoie "true" si "expression_période1" précède "expression_période2" ; c'est-à-dire si toutes les valeurs de la première période sont antérieures au début de la seconde période. expression_période1 precedes expression_période2 period( 1989-11-01, 1991-05-19 ) precedes period( 1991-05-19, 1991-06-04 ) Résultat : true period( 1989-11-01, 1991-05-18 ) precedes period( 1991-05-19, 1991-06-04 ) Résultat : true succeeds Renvoie "true" si "expression_période1" succède à "expression_période2" ; c'est-à-dire si toutes les valeurs de la première période sont postérieures à la fin de la seconde période. expression_période1 succeeds expression_période2 period( 1991-05-19, 1994-01-10 ) succeeds period( 1991-01-19, 1991-05-19 ) Résultat : true period( 1991-05-20, 1994-01-10 ) succeeds period( 1991-01-20, 1991-05-19 ) Résultat : true
Fonctions de date-heure selon le principe des jours ouvrables Cette liste contient des fonctions d'entreprise permettant d'exécuter des calculs de date et d'heure. _add_seconds ( expression_heure; expression_entier ) Renvoie l'heure ou l'horodatage, en fonction du format de "expression_heure", qui résulte de l'ajout de "expression_entier" secondes à "expression_heure". Exemple : _add_seconds ( 13:04:59 ; 1 ) Résultat : 13:05:00 Exemple : _add_seconds ( 2002-04-30 12:10:10.000; 1 ) Résultat : 2002-04-30 12:10:11,000 Exemple : _add_seconds ( 2002-04-30 00:00:00.000; 1/100 ) Notez que le deuxième argument n'est pas un nombre entier. Il est pris en charge par certaines bases de données et permet d'incrémenter la portion heure. Résultat : 2002-04-30 00:00:00,010 _add_minutes ( expression_heure; expression_entier ) Renvoie l'heure ou l'horodatage, en fonction du format de "expression_heure", qui résulte de l'ajout de "expression_entier" minutes à "expression_heure". Exemple : _add_minutes ( 13:59:00 ; 1 ) Résultat : 14:00:00 Exemple : _add_minutes ( 2002-04-30 12:59:10.000; 1 ) Résultat : 2002-04-30 13:00:10,000 Exemple : _add_minutes ( 2002-04-30 00:00:00.000; 1/60 ) Notez que le deuxième argument n'est pas un nombre entier. Il est pris en charge par certaines bases de données et permet d'incrémenter la portion heure. Résultat : 2002-04-30 00:00:01,000 _add_hours ( expression_heure; expression_entier ) Renvoie l'heure ou l'horodatage, en fonction du format de "expression_heure", qui résulte de l'ajout de "expression_entier" heures à "expression_heure". Exemple : _add_hours ( 13:59:00 ; 1 ) Résultat : 14:59:00 Exemple : _add_hours ( 2002-04-30 12:10:10.000; 1 ) Résultat : 2002-04-30 13:10:10,000, Exemple : _add_hours ( 2002-04-30 00:00:00.000; 1/60 ) Notez que le deuxième argument n'est pas un nombre entier. Il est pris en charge par certaines bases de données et permet d'incrémenter la portion heure. Résultat : 2002-04-30 00:01:00,000 _add_days ( expression_date ; expression_entier ) Renvoie la date ou l'horodatage, en fonction du format de "expression_date", qui résulte de l'ajout de "expression_entier" jours à "expression_date". Exemple : _add_days ( 2002-04-30 ; 1 ) Résultat : 2002-05-01 Exemple : _add_days ( 2002-04-30 12:10:10.000; 1 ) Résultat : 2002-05-01 12:10:10.000 Exemple : _add_days ( 2002-04-30 00:00:00.000; 1/24 ) Notez que le deuxième argument n'est pas un nombre entier. Il est pris en charge par certaines bases de données et permet d'incrémenter la portion heure. Résultat : 2002-04-30 01:00:00.000 _add_months ( expression_date ; expression_entier ) Ajoute "expression_entier" mois à "expression_date". Si le mois obtenu comporte moins de jours que le composant Jour du mois, le dernier jours du mois obtenu est renvoyé. Dans tous les autres cas, la valeur renvoyée comporte le même composant Jour du mois que "expression_date". Exemple : _add_months ( 2012-04-15 ; 3 ) Résultat : 2012-07-15 Le résultat ne correspond pas au dernier jour du mois obtenu. Exemple : _add_months ( 2012-02-29 ; 1 ) Résultat : 2012-03-29 Utilisez la fonction _last_of_month pour renvoyer le dernier jour du mois. Exemple : _last_of_month ( _add_months ( 2012-02-29 ; 1 ) ) Résultat : 2012-03-31 La valeur de jour est ajustée en fonction du dernier jour du mois obtenu. Exemple : _add_months ( 2012-01-31 ; 1 ) Résultat : 2012-02-29 Ajout à un horodatage Exemple : _add_months ( 2002-04-30 12:10:10.000 ; 1 ) Résultat : 2002-05-30 12:10:10.000 _add_years ( expression_date ; expression_entier ) Ajoute "expression_entier" années à "expression_date". Si "expression_date" correspond au 29 février et que l'année obtenue n'est pas une année bissextile, la date du 28 février est affectée au jour obtenu. Dans tous les autres cas, la valeur renvoyée comporte le même jour et le même mois que "expression_date". Exemple : _add_years ( 2012-04-15 ; 1 ) Résultat : 2013-04-15 La date du 29 février est ajustée pour les années non bissextiles. Exemple : _add_years ( 2012-02-29 ; 1 ) Résultat : 2013-02-28 Ajout à un horodatage Exemple : _add_years ( 2002-04-30 12:10:10.000 ; 1 ) Résultat : 2003-04-30 12:10:10.000 _age ( expression_date ) Renvoie un nombre issu de la soustraction de "expression_date" à la date du jour. La valeur renvoyée est au format AAAAMMJJ, où AAAA représente l'année, MM le mois et JJ le jour. Exemple : _age ( 1990-04-30 ) (si la date du jour est le 2003-02-05) Résultat : 120906, c'est-à-dire, 12 ans, 9 mois et 6 jours. _date_to_int ( expression_date ) Renvoie la représentation sous forme d'entier de "expression_date". La valeur renvoyée est au format AAAAMMJJ, où AAAA représente l'année, MM le mois et JJ le jour. Exemple : _date_to_int ( 2003-01-01 ) Résultat: 20030101 _day_of_week ( expression_date; entier ) Renvoie le jour de la semaine (sous la forme d'un chiffre compris entre 1 et 7). Le premier jour de la semaine (jour 1) dépend de la valeur saisie dans le deuxième paramètre (un chiffre entre 1 et 7), où 1 correspond au lundi et 7 correspond au dimanche. Notez que dans la norme ISO 8601, la semaine commence le lundi, le jour 1. Exemple : _day_of_week ( 2003-01-01 ; 1 ) Résultat : 3 _day_of_year ( expression_date ) Renvoie le jour de l'année (1 à 366) contenu dans "expression_date". Egalement appelé jour julien. Exemple : _day_of_year ( 2003-03-01 ) Résultat : 61 _days_between ( expression_date1 ; expression_date2 ) Renvoie un nombre positif ou négatif représentant le nombre de jours entre "expression_date1" et "expression_date2". If "expression_date1" < "expression_date2", le résultat sera négatif. Exemple : _days_between ( 2002-06-21 , 2002-04-30 ) Résultat : 52 Exemple : _days_between ( 2002-04-30 ; 2002-06-21 ) Résultat : -52 _days_to_end_of_month ( expression_date ) Renvoie un nombre représentant le nombre de jours restant dans le mois représentés par "expression_date". Exemple : _days_to_end_of_month ( 2002-04-20 14:30:22.123 ) Résultat : 10 _first_of_month ( expression_date ) Renvoie une date ou une date-heure, en fonction de l'argument, obtenu par la conversion en date de "expression_date", avec la même année et le même mois, mais en définissant le jour à 1. Exemple : _first_of_month ( 2002-04-20 ) Résultat : 2002-04-01 Exemple : _first_of_month ( 2002-04-20 12:10:10.000 ) Résultat : 2002-04-01 12:10:10.000 _last_of_month ( expression_date ) Renvoie une date ou une date-heure (en fonction de l'argument) dans laquelle "expression_date" correspond au dernier jour du mois. Exemple : _last_of_month ( 2002-01-14 ) Résultat : 2002-01-31 Exemple : _last_of_month ( 2002-01-14 12:10:10.000 ) Résultat : 2002-01-31 12:10:10.000 _make_timestamp ( expression_entier1; expression_entier2; expression_entier3 ) Renvoie un horodatage construit à partir des expressions "expression_entier1" (année), "expression_entier2" (mois) et "expression_entier3" (jour). La valeur par défaut de la portion heure est 00:00:00.000. Exemple : _make_timestamp ( 2002 ; 01 ; 14 ) Résultat : 2002-01-14 00:00:00.000 _months_between ( expression_date1; expression_date2 ) Renvoie un nombre entier positif ou négatif représentant le nombre de mois entre "expression_date1" et "expression_date2". Si "expression_date1" est antérieure à "expression_date2", un nombre négatif est renvoyé. Exemple : _months_between ( 2002-04-03 ; 2002-01-30 ) Résultat : 2 Exemple : _months_between ( 2002-01-30 , 2002-04-03 ) Résultat : -2 _shift_timezone ( valeur_horodatage ; fuseau_horaire_source ; fuseau_horaire_cible ) _shift_timezone ( horodatage_avec_valeur_fuseau_horaire ; fuseau_horaire_cible ) Convertit une valeur d'horodatage d'un fuseau horaire vers un autre fuseau horaire. Cette fonction prend en compte l'heure d'été, le cas échéant. Si le premier argument est de type "horodatage", le deuxième et le troisième arguments représentent les fuseaux horaires "source" et "cible", respectivement. Si le premier argument est de type "horodatage avec un fuseau horaire", le fuseau horaire "source" est déjà impliqué dans le premier argument avant que le deuxième argument ne représente le fuseau horaire "cible". Le type de données du premier argument détermine également le type de données de la valeur de retour. Le deuxième et le troisième arguments sont de type "chaîne" et représentent des identificateurs de fuseau horaire. Vous trouverez ci-dessous une liste répertoriant ces identificateurs. Remarque : l'utilisation de cette fonction entraîne un traitement local. Exemple : _shift_timezone( 2013-06-30 12:00:00 , 'America/New_York' , 'GMT' ) Résultat : 2013-06-30 16:00:00 Exemple : _shift_timezone( 2013-11-30 12:00:00-05:00 , 'America/Vancouver' ) Résultat : 2013-11-30 09:00:00-08:00 Identificateurs de fuseau horaire : 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 Un identificateur de fuseau horaire personnalisé peut également être utilisé à l'aide du format GMT(+|-)HH:MM. Par exemple, GMT-06:30 ou GMT+02:00. _week_of_year ( expression_date ) Renvoie le numéro de semaine de l'année de "expression_date" en fonction de la norme ISO 8601. La semaine 1 correspond à la première semaine de l'année qui compte un jeudi, ce qui correspond à la semaine du 4 janvier. Une semaine commence le lundi (jour 1) et se termine le dimanche (jour 7). Exemple : _week_of_year ( 2003-01-01 ) Résultat : 1 _years_between ( expression_date1; expression_date2 ) Renvoie un nombre entier positif ou négatif représentant le nombre d'années entre "expression_date1" et "expression_date2". Si "expression_date1" < "expression_date2", une valeur négative est renvoyée. Exemple : _years_between ( 2003-01-30 ; 2001-04-03 ) Résultat : 1 Exemple : _years_between ( 2001-04-03 , 2003-01-30 ) Résultat : -1 _ymdint_between ( expression_date1 ; expression_date2 ) Renvoie un nombre représentant la différence entre "expression_date1" et "expression_date2". La valeur renvoyée est au format AAAAMMJJ, où AAAA représente l'année, MM le mois et JJ le jour. Exemple : _ymdint_between ( 1990-04-30 ; 2003-02-05 ) Résultat : 120905, c'est-à-dire 12 ans, 9 mois et 5 jours. _year ( expression_date ) Renvoie la valeur de la zone d'année dans "expression_date". Exemple : _year ( 2003-03-01 ) Résultat : 2003 _month ( expression_date ) Renvoie la valeur de la zone de mois dans "expression_date". Exemple : _month ( 2003-03-01 ) Résultat : 3 _day ( expression_date ) Renvoie la valeur de la zone de jour dans "expression_date". Exemple : _day ( 2003-03-01 ) Résultat : 1 _hour ( expression_date ) Renvoie la valeur de la zone d'heure dans "expression_date". Exemple : _hour ( 2002-01-31 12:10:10.254 ) Résultat : 12 _minute ( expression_date ) Renvoie la valeur de la zone de minutes dans "expression_date". Exemple : _minute ( 2002-01-31 12:10:10.254 ) Résultat : 10 _second ( expression_date ) Renvoie la valeur de la zone de secondes dans "expression_date". Exemple : _second ( 2002-01-31 12:10:10.254 ) Résultat : 10.254 _timezone_hour ( horodatage_avec_valeur_fuseau_horaire ) _timezone_hour ( heure_avec_valeur_fuseau_horaire ) Renvoie la valeur de la zone heure du fuseau horaire dans l'expression. L'expression doit être de type "horodatage avec fuseau horaire" ou "heure avec fuseau horaire". Exemple : _timezone_hour ( 2002-01-31 12:10:10.254-05:30 ) Résultat : -5 _timezone_minute ( horodatage_avec_valeur_fuseau_horaire ) _timezone_minute ( heure_avec_valeur_fuseau_horaire ) Renvoie la valeur de la zone minute du fuseau horaire dans l'expression. L'expression doit être de type "horodatage avec fuseau horaire" ou "heure avec fuseau horaire". Exemple : _timezone_minute ( 2002-01-31 12:10:10.254-05:30 ) Résultat : -30 _start_of_day ([ expression_date ]) Renvoie le début de "expression_date" ou le début de la date du jour sous la forme d'un horodatage. Exemple : _start_of_day ( 2014-11-23 12:10:10.254 ) Résultat : 2014-11-23 00:00:00 Exemple : _start_of_day () Résultat : 2016-01-01 00:00:00 _end_of_day ([ expression_date ]) Renvoie la fin de "expression_date" ou la fin de la date du jour comme horodatage. Exemple : _end_of_day ( 2014-11-23 12:10:10.254 ) Résultat : 2014-11-23 23:59:59 Exemple : _end_of_day () Résultat : 2016-01-01 23:59:59 _unix_timestamp ( expression_date ) Renvoie le nombre de secondes écoulées depuis 1970-01-01 00:00:00-00 pour l'expression "expression_date" donnée. Exemple : _unix_timestamp ( 2014-11-23 ) Résultat : 1416718800 _from_unixtime ( expression_entier ) Renvoie l'heure unix spécifiée par "expression_entier" sous la forme d'un horodatage avec un fuseau horaire. Exemple : _from_unixtime (1417807335) Résultat : 2014-12-05 19:22:15+00:00
Fonctions macros La liste ci-dessous contient les fonctions pouvant être utilisées dans une macro. Une macro peut contenir plusieurs de ces fonctions. Les macros se reconnaissent au fait qu'elles commencent et se terminent par le signe de dièse (#). Tout ce qui se trouve entre ces deux signes est considéré comme une expression de macro et est traité lors de l'exécution. Pour les fonctions macros qui acceptent des expressions de type horodatage avec fuseau horaire en tant qu'arguments, le format autorisé est "aaaa-mm-jj hh:mm:ss[.ff]+hh:mm", les fractions de secondes étant facultatives et pouvant être représentées par 1 à 9 chiffres. Le caractère "T" est également autorisé à la place de l'espace de séparation entre la portion date et la portion heure. De plus, le caractère "Z" est autorisé à la place de la partie fuseau horaire "+hh:mm". Il est alors traité en interne sous la forme "+00:00". Les fonctions macros qui renvoient des expressions de type horodatage avec fuseau horaire renvoient 9 chiffres par défaut pour leurs fractions de secondes. Au besoin, la fonction macro timestampMask() peut être utilisée pour ajuster le résultat obtenu. Renvoie l'horodatage avec fuseau horaire (sous forme de chaîne) résultant de l'ajout de "expression_entier" nombre de secondes à "expression_chaîne", où "expression_chaîne" représente un horodatage avec fuseau horaire. _add_seconds ( expression_chaîne ; expression_entier ) Exemple : # _add_seconds ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Résultat : 2005-11-01 11:59:59,000-05:00 Exemple : # _add_seconds ( $current_timestamp ; 1 ) # Résultat : 2005-11-01 12:00:01,000000000-05:00 Exemple : # timestampMask ( _add_seconds ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Résultat : 12:00:01 Renvoie l'horodatage avec fuseau horaire (sous forme de chaîne) résultant de l'ajout de "expression_entier" nombre de minutes à "expression_chaîne", où "expression_chaîne" représente un horodatage avec fuseau horaire. _add_minutes ( expression_chaîne ; expression_entier ) Exemple : # _add_minutes ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Résultat : 2005-11-01 11:59:00,000-05:00 Exemple : # _add_minutes ( $current_timestamp ; 1 ) # Résultat : 2005-11-01 12:01:00,000000000-05:00 Exemple : # timestampMask ( _add_minutes ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Résultat : 12:01:00 Renvoie l'horodatage avec fuseau horaire (sous forme de chaîne) résultant de l'ajout de "expression_entier" nombre d'heures à "expression_chaîne", où "expression_chaîne" représente un horodatage avec fuseau horaire. _add_hours ( expression_chaîne ; expression_entier ) Exemple : # _add_hours ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Résultat : 2005-11-01 13:00:00,000-05:00 Exemple : # _add_hours ( $current_timestamp ; 1 ) # Résultat : 2005-11-01 13:00:00,000000000-05:00 Exemple : # timestampMask ( _add_hours ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Résultat : 13:00:00 Renvoie l'horodatage avec fuseau horaire (sous forme de chaîne) résultant de l'ajout de "expression_entier" nombre de jours à "expression_chaîne", où "expression_chaîne" représente un horodatage avec fuseau horaire. Lorsque le premier argument est une date, spécifiée sous la forme d'une chaîne au format : aaaa-mm-jj, la valeur de retour est une chaîne formatée comme une date. _add_days ( expression_chaîne ; expression_entier ) Exemple : # _add_days ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Résultat : 2005-10-31 12:00:00.000000000-05:00 Exemple : # _add_days ( $current_timestamp ; 1 ) # Résultat : 2005-11-02 12:00:00.000000000-05:00 Exemple: # timestampMask ( _add_days ( $current_timestamp ; 1 ) ; 'aaaa-mm-jj' ) # Résultat : 2005-11-02 Exemple : # _add_days( '2019-11-14' , 3 ) # Résultat : 2019-11-17 Renvoie l'horodatage avec fuseau horaire (sous forme de chaîne) résultant de l'ajout de "expression_entier" nombre de mois à "expression_chaîne", où "expression_chaîne" représente un horodatage avec fuseau horaire. Lorsque le premier argument est une date, spécifiée sous la forme d'une chaîne au format : aaaa-mm-jj, la valeur de retour est une chaîne formatée comme une date. _add_months ( expression_chaîne ; expression_entier ) Exemple : # _add_months ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Résultat : 2005-10-01 12:00:00.000000000-05:00 Exemple : # _add_months ( $current_timestamp ; 1 ) # Résultat : 2005-12-01 12:00:00.000000000-05:00 Exemple: # timestampMask ( _add_months ( $current_timestamp ; 1 ) ; 'aaaa-mm-jj' ) # Résultat : 2005-12-01 Exemple : # _add_months( '2019-11-14' , -1 ) # Résultat : 2019-10-14 Renvoie l'horodatage avec fuseau horaire (sous forme de chaîne) résultant de l'ajout de "expression_entier" nombre d'années à "expression_chaîne", où "expression_chaîne" représente un horodatage avec fuseau horaire. Lorsque le premier argument est une date, spécifiée sous la forme d'une chaîne au format : aaaa-mm-jj, la valeur de retour est une chaîne formatée comme une date. _add_years ( expression_chaîne ; expression_entier ) Exemple : # _add_years ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Résultat : 2004-11-01 12:00:00.000000000-05:00 Exemple : # _add_years ( $current_timestamp ; 1 ) # Résultat : 2006-11-01 12:00:00.000000000-05:00 Exemple: # timestampMask ( _add_years ( $current_timestamp ; 1 ) ; 'aaaa-mm-jj' ) # Résultat : 2006-11-01 Exemple : # _add_years( '2019-11-14' , -2 ) # Résultat : 2017-11-14 _first_of_month ( expression_chaîne ) Renvoie un horodatage avec fuseau horaire (sous forme de chaîne) convertissant la valeur du jour de "expression_chaîne" à 1, où "expression_chaîne" est un horodatage avec fuseau horaire. Exemple : # _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Résultat : 2005-11-01 12:00:00.000000000-05:00 Exemple : # timestampMask ( _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'aaaammjj' ) # Résultat : 20051101 _last_of_month ( expression_chaîne ) Renvoie un horodatage avec fuseau horaire (sous forme de chaîne) correspondant au dernier jour du mois représenté par "expression_chaîne", où "expression_chaîne" est un horodatage avec fuseau horaire. Exemple : # _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Résultat : 2005-11-30 12:00:00.000000000-05:00 Exemple : # timestampMask ( _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'aaaammjj' ) # Résultat : 2005-11-30 modelj ( 'identifier' [ , 'model_search_path' [ , 'options' ] ] ) Renvoie une partie du modèle de métadonnées au format json. Le modèle en cours sera utilisé si 'model_search_path' n'est pas spécifié. L'argument 'options' peut être défini sur 'cleanup', ce qui modifie certaines parties du résultat en valeurs fixes (utiles pour le test). sq ( modelj ( '[gosales].[country].[country]' ) Entoure "expression_chaîne" par des crochets. sb ( expression_chaîne ) Exemple : # sb ( 'abc' ) # Résultat : [abc] Entoure "expression_chaîne" par des apostrophes. sq ( expression_chaîne ) Exemple : # sq ( 'zéro' ) # Résultat : 'zéro' Entoure "expression_chaîne" par des guillemets. dq ( expression_chaîne ) Exemple : # dq ( 'zéro' ) # Résultat : "zéro" Utilise les informations d'identité de l'utilisateur authentifié pour rechercher des valeurs dans la table de mappages des paramètres indiquée. Chaque élément de l'identité de l'utilisateur (nom de compte, noms de groupe, noms de rôle) sert de clé. La liste unique de valeurs, extraite de la table de mappages des paramètres, est ensuite transmise sous forme de chaîne, dans laquelle chaque valeur est délimitée par des guillemets simples et les valeurs multiples sont séparées par des virgules. CSVIdentityName ( %parameter_map_name [ ; chaîne_séparateur ] ) Exemple : # CSVIdentityName ( %security_clearance_level_map ) # Résultat : 'niveau_500' , 'niveau_501' , 'niveau_700' Renvoie les éléments de l'identité de l'utilisateur (nom de compte, noms de groupe, noms de rôle) sous la forme d'une liste de chaînes de caractères. La liste unique de valeurs est ensuite renvoyée sous forme de chaîne, où chaque valeur est délimitée par des guillemets simples et où les valeurs sont séparées par des virgules. CSVIdentityNameList ( [ chaîne_séparateur ] ) Exemple : # CSVIdentityNameList ( ) # Résultat : 'Tous' , 'Administrateurs de rapports' , 'Utilisateurs de requêtes' Renvoie le passeport Cognos Access Manager. CAMPassport ( ) Exemple : # CAMPassport ( ) # Résultat : 111:98812d62-4fd4-037b-4354-26414cf7ebef:3677162321 Renvoie les composants de l'identifiant Cognos® Access Manager, CAMID, telles que le nom de compte, les noms de groupe ou les noms de rôle, sous forme d'une liste de valeurs séparées par des virgules. CAMIDList ( [ chaîne_séparateur ] ) Exemple : # CAMIDList ( ) # Résultat : CAMID ( "::Tous" ) ; CAMID ( ":Auteurs" ) ; CAMID ( ":Utilisateurs de requêtes" ) ; CAMID ( ":Utilisateurs" ) ; CAMID ( ":Auteurs d'indicateurs" ) Renvoie un tableau des identités Cognos® Access Manager (CAMID) de l'utilisateur selon le type d'identité (compte, groupe ou rôle). CAMIDListForType peut être utilisé avec des fonctions macros dans des fichiers CSV ou de jointure. CAMIDListForType ( type d'identité ) Exemple : [qs].[Rôle_utilisateur] in ( # csv ( CAMIDListForType ( 'role' ) ) # ) Résultat : [qs].[Rôle_utilisateur] in ( 'CAMID ( "::Administrateurs système" ) ' ; 'CAMID ( ":Auteurs" )' ) Concatène deux chaînes. valeur1 + valeur2 Exemple : # '{ ' + $runLocale + ' }' # Résultat : {en-us} Supprime les caractères de début du premier argument. Le deuxième argument facultatif définit le jeu de caractères à supprimer. Par défaut, cette fonction supprime les blancs (espaces, tabulations, retours chariot et sauts de ligne). lstrip ( expression_chaîne [ ; jeu_de_caractères ] ) Exemple : # sq( lstrip ( ' abc ' ) ) # Résultat : 'abc ' Exemple : # lstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Résultat : 53,2100 Renvoie la valeur de paramètre de "nom_paramètre" si elle est définie. La valeur "texte_par_défaut" sera renvoyée si "nom_paramètre" n'existe pas. Lorsque "type_données" est défini sur "string", la valeur résultat sera placée entre des guillemets simples. L'utilisation de cette fonction n'entraînera pas d'exception due à un paramètre manquant. ParamValue ( nom_paramètre [ , texte_par_défaut [, type_données ] ] ) Exemple : # ParamValue ( 'p_pays' ) # Résultat : 'Canada' - p_pays est défini Résultat : null - p_pays n'est pas un paramètre connu Résultat : null - p_pays est utilisé dans une invite facultative et n'est pas défini Exemple : # ParamValue ( 'p_pays' , 'Pays-Bas' ) # Résultat : 'Canada' - p_pays est défini Résultat : 'Pays-Bas' - p_pays n'est pas un paramètre connu Résultat : 'Pays-Bas' - p_pays est utilisé dans une invite facultative et n'est pas défini Exemple : # ParamValue ( 'p_pays', ' cast ( null as varchar(20)) ' , 'token' ) # Résultat : 'Canada' - p_pays est défini Résultat : cast ( null as varchar(20)) - p_pays n'est pas un paramètre connu Résultat : cast ( null as varchar(20)) - p_pays est utilisé dans une invite facultative et n'est pas défini Invite l'utilisateur à entrer une valeur unique ou un membre. Seule la valeur "nom_invite" est requise. Lorsque le type de données n'est pas spécifié, le système utilise le type par défaut 'chaîne'. L'invite est facultative lorsque "texte_par_défaut" est défini. Lorsqu'elle est définie, l'expression "texte", précède la valeur. "élément de requête" peut être défini afin de profiter des propriétés d'informations d'invite de "élément de requête". Lorsqu'elle est définie, l'expression "texte_fin" est ajoutée à la valeur. Lorsque le type de données est 'memberuniquename', une invite de sélection de membre unique est créée. Il est recommandé d'entrer une valeur par défaut comme troisième argument. La valeur par défaut doit être un nom unique de membre valide. Elle peut aussi être un alias qui référence un nom unique de membre, comme dans Report Studio. prompt ( nom_invite ; type_données ; texte_par défaut ; texte ; élément_requête ; texte_fin ) Exemple : select . . . where PAYS_MULTILINGUE.CODE_PAYS > #prompt ( 'Premier CodePays' ; 'integer' ; '10' ) # Résultat : select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > 10 Exemple : [gosales].[PAYS].[PAYS] = # prompt ( 'invite_pays' , 'string' , '''Canada''' ) # Résultat : [gosales].[PAYS].[PAYS] = 'Canada' Exemple : set ( #prompt ('monProduit', 'nomuniquemembre', '[Matériel de camping]', '', '[Ventes].[Produit].[Produit].[Ligne de produits]')#) Résultat : set([Ventes].[Produit].[Produit].[Ligne de produits]->[Toutes].[1]) Le paramètre "texte_par_défaut" doit être spécifié de manière à ce qu'il soit littéralement valide dans le contexte de la macro, car aucun formatage n'est effectué sur cette valeur. Dans l'exemple 2, la chaîne par défaut '''Canada''' est spécifiée sous la forme d'une chaîne utilisant une paire d'apostrophes, dans laquelle est intégrée une seconde paire d'apostrophes doublée, d'où la présence de 3 apostrophes. De cette manière, la chaîne s'affiche correctement dans l'expression, entre apostrophes simples. En règle générale, pour le type de données Chaîne, le paramètre "defaultText" doit toujours être spécifié comme indiqué, sauf dans le contexte d'un paramètre de procédure stockée. Pour les paramètres "texte_par_défaut " de type 'date' ou 'datetime', un format spécial doit être utilisé dans le contexte SQL. Exemples de formats : 'DATE ''2001-12-25''' et 'DATETIME ''2001-12-25 12:00:00'''. Dans tous les autres contextes, utilisez le format date/datetime sans mot clé ni guillemets simples avec caractères d'échappement (par exemple, '2001-12-25'). Invite l'utilisateur à fournir une ou plusieurs valeurs ou membres. Seule la valeur "nom_invite" est requise. Lorsque le type de données n'est pas spécifié, le système utilise le type par défaut 'chaîne'. L'invite est facultative lorsque "texte_par_défaut" est défini. Lorsqu'elle est définie, l'expression "texte" précède la liste de valeurs. "élément de requête" peut être défini afin de profiter des propriétés d'informations d'invite de "élément de requête". Lorsqu'elle est définie, l'expression "texte_fin" est ajoutée à la liste de valeurs. Lorsque le type de données est 'memberuniquename', une invite de sélection multiple de membre est créée. Il est recommandé d'entrer une valeur par défaut comme troisième argument. La valeur par défaut doit être un nom unique de membre valide. Elle peut aussi être un alias qui référence un nom unique de membre, comme dans Report Studio. promptmany ( nom_invite ; type_données ; texte_par défaut ; texte ; élément_requête ; texte_fin ) Exemple : select . . . where PAYS_MULTILINGUE.PAYS in ( # promptmany ( 'NomPays' ) # ) Résultat : select . . . where PAYS_MULTILINGUE.CODE_PAYS in ( 'Canada' ; 'Pays-Bas' ; 'Russie' ) Exemple : select . . . from gosales.gosales.dbo.PAYS_MULTILINGUE PAYS_MULTILINGUE ; gosales.gosales.dbo.PAYS XX where PAYS_MULTILINGUE.CODE_PAYS = XX.CODE_PAYS # promptmany ( 'Codes pays sélectionnés' ; 'integer' ; ' ' ; ' and PAYS_MULTILINGUE.CODE_PAYS in ( ' ; '' ; ' ) ' ) # Résultat : select . . . from gosales.gosales.dbo.PAYS_MULTILINGUE PAYS_MULTILINGUE ; gosales.gosales.dbo.PAYS XX where PAYS_MULTILINGUE.CODE_PAYS= XX.CODE_PAYS and PAYS_MULTILINGUE.CODE_PAYS in ( 'Canada' ; 'Pays-Bas' ; 'Russie' ) Exemple : set ( #promptmany ('monProduit', 'nomuniquemembre', '[Matériel de camping]', '', '[Ventes].[Produit].[Produit].[Ligne de produits]')#) Résultat : set([Ventes].[Produit].[Produit].[Ligne de produits]->[Toutes].[1]; [Ventes].[Produit].[Produit].[Ligne de produits]->[Toutes].[2]) Exécutez une requête pour une seule colonne et renvoyez la valeur dans la première (et unique) ligne. Le résultat n'est pas mis en forme, veillez donc à placer l'appel entre les signes sq ( ), le cas échéant. queryValue ( expression_valeur [ , expression_filtre ] ) Exemple: # sq ( queryValue ( 'Calendrier.NomJour' , 'Calendrier.Date = 2018-06-06' ) ) # Résultat : 'Mercredi' Crée un tableau à partir de la liste des paramètres. array ( expression_chaîne|expression_tableau { ; expression_chaîne|expression_tableau } ) Exemple : # csv ( array ( 'a1' ; array ( 'x1' ; 'x2' ) ; 'a2' ) ) # Résultat : 'a1' , 'x1' , 'x2' , 'a2' Crée une chaîne à partir des éléments du tableau, dans laquelle les valeurs sont séparées par des virgules. Si vous le souhaitez, vous pouvez définir les chaînes de séparateurs et de guillemets à utiliser. Le séparateur par défaut est la virgule ( ; ) et le caractère par défaut pour le guillemet est le guillemet simple ( ' ). csv ( expression_tableau [ ; chaîne_séparateur [ ; chaîne_guillemet ] ] ) Exemple : # sq ( csv ( array ( 'a1' , 'a2' ) ) ) # Résultat : 'a1' , 'a2' Sélectionnez une entrée dans le fichier de configuration d'IBM® Cognos®. Le paramètre force_decode_flag est facultatif et doit être l'un des suivants : 'true' , '1', 1 , 'false', '0', 0. La valeur par défaut est 'false'. Dans certains cas exceptionnels, force_decode_flag doit prendre la valeur true. Lorsque force_decode_flag a la valeur true, la valeur en texte en clair des entrées configurées dans les propriétés avancées d'IBM® Cognos® Configuration est renvoyée. Pour les entrées qui ne sont pas identifiées dans les propriétés avancées, une chaîne vide est renvoyée même s'il existe des informations chiffrées. L'entrée dans les propriétés avancées est qs.getConfigurationEntry.1. Il s'agit d'une liste de nom séparés par un point virgule. Par défaut, la liste est vide et les appels à cette fonctions lorsque le paramètre a la valeur true renvoient une chaîne vide. getConfigurationEntry ( chaîne_entrée ; force_decode_flag ) Exemple : # getConfigurationEntry ( 'serverLocale'  ) # Résultat : en Renvoie une entrée d'un fichier de ressources. Le premier argument est l'ID ressource trouvé dans le fichier de ressources. Le second argument facultatif est le nom du fichier de ressources sans le suffixe de l'environnement local (par exemple,'mfwa4j' pour le fichier de messages 'mfwa4j_en.properties'). Le fichier de ressources par défaut est 'xqejavamsgs'. Le troisième argument facultatif est l'environnement local, dont la valeur par défaut est 'en'. getResourceString ( chaîne_ID_ressource [, chaîne_fichier_ressources [ , chaîne_environnement_local ] ] ) Exemple :# getResourceString ( 'XQE_BIN_binLow' ) # Résultat : XQE-BIN-0001 inférieur à %1 Exemple : # getResourceString ( 'MFW_UT_INTERNAL_ERROR' , 'mfw4j' , 'en' ) # Résultat : MFW-UT-1002 Un problème interne s'est produit. Veuillez contacter l'administrateur système. Recherche et renvoie des éléments d'un tableau correspondant au motif défini dans "chaîne_motif". Les seuls métacaractères pris en charge sont ^ (début du mot), $ (fin du mot), ! (negate - pris en charge uniquement en tant que premier caractère). grep ( chaîne_motif ; expression_tableau ) Exemple : # sq ( csv ( grep ( 's' , array ( 'as', 'an', 'arts' ) ) ) ) # Résultat : 'as', 'arts' Exemple : # sq ( csv ( grep ( '^g' , array ( 'groupe', 'golf' ) ) ) ) # Résultat : 'groupe', 'golf' Exemple : # sq ( csv ( grep ( 's$' , array ( 'oranges', 'mangues' ) ) ) ) # Résultat : 'oranges', 'mangues' Exemple : # sq ( csv ( grep ( '!o' , array ( 'oranges', 'pêches' ) ) ) ) # Résultat : 'pêches' Permet de trouver le décalage dans la chaîne 'str' où la sous-chaîne 'substr' est trouvée. La valeur -1 est renvoyée lorsque la sous-chaîne 'substr' est introuvable. Vous pouvez également indiquer un 'décalage' facultatif à partir duquel la recherche doit commencer. Le premier argument 'str' peut également être une entrée expression_tableau ; dans ce cas, la fonction est appliquée à chaque élément du tableau et le résultat de la fonction est un tableau de valeurs. index ( str , sous-chaîne [ , décalage ] ) # index ( 'Les geais noirs volent dans les ciels bleus.', 'noirs' ) # Résultat : 4 # index ( 'Les geais noirs volent dans les ciels bleus.', 'noirs', 10 ) # Résultat : 32 # index ( 'Les geais noirs volent dans les ciels bleus.', 'vert' ) # Résultat : -1 # sq ( join ( ' | ', index ( array ('noir' , 'rouge', 'vert' ) , 'e' ) ) ) # Résultat : -1 | 1 | 2 Joint les éléments d'un tableau en utilisant le "chaîne_séparateur". join ( chaîne_séparateur ; expression_tableau ) Exemple : # sq ( join ( ' | | ' ; array ( 'as'; 'an'; 'arts' ) ) ) # Résultat : 'as | | an | | arts' Calcule le nombre de caractères dans expression_chaîne. Si l'argument est expression_tableau, le résultat est un tableau de valeurs ; chaque entrée est le nombre de caractères dans chacun des éléments expression_tableau. length (expression_chaîne | expression_tableau ) length ( 'abcdef' ) Résultat : 6 join ( '--', length ( array ( 'abcdef' , 'xyz' ) ) ) Résultat : 6--3 Permet de trouver le dernier décalage dans la chaîne 'str' où la sous-chaîne 'substr' est trouvée. Cette fonction est appelée index inversé ; elle s'apparente à un lancement de l'analyse à partir de la fin de la chaîne. La valeur -1 est renvoyée lorsque la sous-chaîne 'substr' est introuvable. Vous pouvez également indiquer un 'décalage' facultatif à partir duquel la recherche doit s'arrêter. Le premier argument 'str' peut être expression_tableau ; dans ce cas, la fonction est appliquée à chaque élément du tableau et le résultat de la fonction est un tableau de valeurs. rindex ( chaîne , sous-chaîne [ , décalage ] ) # rindex ( 'Les geais noirs volent dans les ciels bleus.', 'noirs' ) # Résultat : 32 # rindex ( 'Les geais noirs volent dans les ciels bleus.', 'noirs', 10 ) # Résultat : 4 # rindex ( 'Les geais noirs volent dans les ciels bleus.', 'vert' ) # Résultat : -1 # sq ( join ( ' | ', rindex ( array ('noir' , 'rouge', 'vert' ) , 'e' ) ) ) # Résultat : -1 | 1 | 3 Supprime les caractères de fin du premier argument. Le deuxième argument facultatif définit le jeu de caractères à supprimer. Par défaut, cette fonction supprime les blancs (espaces, tabulations, retours chariot et sauts de ligne). rstrip ( expression_chaîne [ ; jeu_de_caractères ] ) Exemple : # sq( rstrip ( ' abc ' ) ) # Résultat : ' abc' Exemple : # rstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Résultat : 0053,21 Trie les éléments d'un tableau par ordre alphabétique. Les valeurs en double sont conservées. sort ( expression_tableau ) Exemple : # csv ( sort ( array ( 's3'; 'a'; 'x' ) ) ) # Résultat : 'a', 's3', 'x' Fractionne une chaîne ou les éléments d'une chaîne de tableau en éléments séparés. split ( chaîne_motif; expression_chaîne|expression_tableau ) Exemple : # sq ( csv ( split ( '::', 'ab=c::de=f::gh=i' ) ) ) # Résultat : 'ab=c' , 'de=f', 'gh=i' Exemple : # sq ( csv ( split ( '=' , split ( '::', 'ab=c::de=f::gh=i' ) ) ) ) # Résultat : 'ab' , 'c' , 'de' , 'f', 'gh' , 'i' Supprime les caractères de début et de fin du premier argument. Le deuxième argument facultatif définit le jeu de caractères à supprimer. Par défaut, cette fonction supprime les blancs (espaces, tabulations, retours chariot et sauts de ligne). strip ( expression_chaîne [ ; jeu_de_caractères ] ) Exemple : # sq( strip ( ' abc ' ) ) # Résultat : 'abc' Exemple : # strip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Résultat : 53,21 Recherche un motif dans une chaîne ou dans les éléments d'une chaîne de tableau et remplace la première occurrence de "chaîne_motif" par "chaîne_remplacement". Les seuls métacaractères pris en charge sont ^ (début du mot), $ (fin du mot) substitute ( chaîne_motif; chaîne_remplacement; expression_chaîne|expression_tableau ) Exemple : #sq ( substitute ( '^cn='; '***'; 'cn=help' ) )# Résultat : '***help' Exemple : # csv ( substitute ( '^cn='; '***'; array ( 'cn=help' ; 'acn=5' ) ) ) # Résultat : '***help' , 'acn=5' Exemple : # csv ( substitute ( 'cn='; ''; array ( 'cn=help' ; 'acn=5' ) ) ) # Résultat : 'help' , 'a5' Exemple : #sq ( substitute ( 'help$', '***', 'cn=help' ) )# Résultat : 'cn=***' Extrait une partie de l'entrée 'expression_chaîne' en commençant par 'début_décalage'. Vous pouvez indiquer le nombre de caractères ('length') à extraire. Si 'length' est omis, la commande renvoie une valeur allant jusqu'à la fin de 'chaîne_expression'. Le premier argument peut également être expression_tableau ; dans ce cas, la fonction est appliquée à chaque élément du tableau et le résultat de la fonction est un tableau de chaînes. substr ( expression_chaîne , début_décalage [ , longueur ] ) substr ( 'Les chevaux sont noirs.', 0, 3 ) Résultat : Les substr ( 'Les chevaux sont noirs.', 4 ) Résultat : chevaux sont noirs. substr ( 'Les chevaux sont noirs', index ('Les chevaux sont noirs.' , 'vert' ) ) Résultat : Les chevaux sont noirs. join ( ' | ', substr ( array ('black' , 'red', 'green' ) , 2, 2 ) ) Résultat : ac | d | en substr ('dans les puits', -2, 4) Résultats erronés : Le second argument de la fonction 'substr' doit être supérieur ou égal à -1." . Renvoie "expression_chaîne1", représentant un horodatage avec fuseau horaire, ajustée au format spécifié dans "expression_chaîne2". La valeur de "expression2_chaîne" doit avoir l'un des formats suivants : 'aaaa', 'mm', 'jj', 'aaaa-mm', 'aaaamm', 'aaaa-mm-jj', 'aaaammjj', 'aaaa-mm-jj hh:mm:ss', 'aaaa-mm-jj hh:mm:ss+hh:mm', 'aaaa-mm-jj hh:mm:ss.ff3', 'aaaa-mm-jj hh:mm:ss.ff3+hh:mm', 'aaaa-mm-jjThh:mm:ss', 'aaaa-mm-jjThh:mm:ss+hh:mm', 'aaaa-mm-jjThh:mm:ss.ff3+hh:mm' ou 'aaaa-mm-jjThh:mm:ss.ff3+hh:mm'. Les fonctions macros qui renvoient un horodatage avec fuseau horaire sous forme de chaîne ont par défaut une précision de 9 chiffres dans la partie des fractions de secondes. Les options de format permettent d'ajuster cela pour atteindre une précision de 3 chiffres ou 0. timestampMask ( expression_chaîne1 ; expression_chaîne2 ) Exemple : # timestampMask ( $current_timestamp ; 'aaaa-jj-mm' ) # Résultat : 2005-11-01 Exemple : # timestampMask (  '2005-11-01 12:00:00.000-05:00' ; 'aaaa-mm-jj hh:mm:ss+hh:mm' ) # Résultat : 2005-11-01 12:00:00-05:00 Exemple : # timestampMask (  '2005-11-01 12:00:00.123456789-05:00' ; 'aaaa-mm-jjThh:mm:ss+hh:mm.ff3+hh:mm' ) # Résultat : 2005-11-01T12:00:00.123-05:00 Renvoie la chaîne représentant un horodatage avec fuseau horaire résultant de l'ajustement de "expression_chaîne" par rapport au fuseau horaire du système d'exploitation. Notez que la fonction macro timestampMask() peut être utilisée pour ajuster cette donnée en sortie. toLocal ( expression_chaîne ) Exemple : # toLocal ( '2005-11-01 17:00:00.000-00:00' ) # où le fuseau horaire local du SE est -05:00 Résultat : 2005-11-01 12:00:00.000000000-05:00 Exemple : # timestampMask ( toLocal ( '2005-11-01 17:00:00.000-00:00' ) ; 'aaaa-mm-jj hh:mm:ss+hh:mm' ) # où le fuseau horaire local du SE est -05:00 Résultat : 2005-11-01 12:00:00-05:00 Exemple : # toLocal ( '2005-11-01 13:30:00.000-03:30' ) # où le fuseau horaire local du SE est -05:00 Résultat : 2005-11-01 12:00:00.000000000-05:00 Renvoie la chaîne "expression_chaîne" dans laquelle tous les caractères sont convertis en minuscules selon les règles du paramétrage régional "chaîne_paramètres_régionaux". Si ce paramétrage n'est pas spécifié, les paramètres régionaux 'en' sont utilisés. tolower ( expression_chaîne [ ; chaîne_environnement_local ] ) Exemple : # tolower ( 'ABC' ) # Résultat : abc Exemple: # tolower ( 'ABC' ; 'fr' ) # Résultat : abc Renvoie la chaîne "expression_chaîne" dans laquelle tous les caractères sont convertis en majuscules selon les règles du paramétrage régional "chaîne_paramètres_régionaux". Si le paramètre "chaîne_paramètres_régionaux" n'est pas spécifié, les paramètres régionaux 'en' sont utilisés. toupper ( expression_chaîne [ ; chaîne_environnement_local ] ) Exemple : # toupper ( 'abc' ) # Résultat : ABC Exemple : # toupper ( 'abc' ; 'fr' ) # Résultat : ABC Renvoie la chaîne représentant un horodatage avec fuseau horaire résultant de l'ajustement de "expression_chaîne" par rapport au point de référence zéro du temps universel coordonné (UTC), également appelé heure GMT. Notez que la fonction macro timestampMask() peut être utilisée pour ajuster cette donnée en sortie. toUTC ( expression_chaîne ) Exemple : # toUTC ( '2005-11-01 12:00:00.000-05:00' ) # Résultat : 2005-11-01 17:00:00.000000000-00:00 Exemple : # timestampMask( toUTC ( '2005-11-01 12:00:00.000-05:00' ) ; 'aaaa-mm-jj hh:mm:ss.ff3+hh:mm' ) # Résultat : 2005-11-01 17:00:000,000-00:00 Exemple : # toUTC ( $current_timestamp ) # Résultat : 2005-11-01 17:00:00.000000000-00:00 Supprime les entrées en double d'un tableau. L'ordre des éléments est conservé. unique ( expression_tableau ) # csv ( unique ( array ( 's3'; 'a'; 's3'; 'x' ) ) ) # Résultat : 's3', 'a', 'x' La fonction URL encode l'argument saisi. Elle est utile lors de la définition de chaînes de connexions XML. urlencode ( prompt ( 'ValeurUtilisateur' ) ) urlencode ( prompt ( 'valeur_quelconque' ) ) %27ValeurTest%27 case (simple) Cette syntaxe de macro correspond au modèle d'un cas simple comprenant les fonctions Case, When, Then, Else et End. Notez que cette syntaxe de macro est uniquement prise en charge en mode DQM. CASE <expression> WHEN <littéral> THEN <expression> [ELSE <expression>] END Exemple : #CASE prompt('pDateRange','token') WHEN 'Current Week' THEN '[PR Current Week]' ELSE '[PR Prior Week]' END# Résultat : [PR Current Week]
Fonctions de bloc Cette liste contient des fonctions utilisées pour accéder aux membres d'un ensemble, habituellement dans le contexte d'Analysis Studio. Renvoie les premiers membres trouvés dans la définition de "expression_numérique_maximum" + "expression_numérique_dépassement". Si le résultat excède "expression_numérique_maximum" + "expression_numérique_dépassement", seul le nombre maximal de membres est renvoyé. Dans le cas d'un ensemble comportant seulement quelques membres de plus que la valeur expression_numérique_maximum spécifique, la valeur de expression_numérique_dépassement permet d'inclure le petit ensemble de membres supplémentaires. Si l'ensemble comporte davantage de membres que ne le permet la valeur de "expression_numérique_dépassement", seuls les membres de expression_numérique_maximum sont renvoyés. _firstFromSet ( expression_ensemble ; expression_numérique_maximum ; expression_numérique_dépassement ) _firstFromSet ( [société_vacances_aventure].[Produits].[Produits].[Ligne de produits] ; 2 ; 8 ) Résultat : Renvoie les cinq membres de l'ensemble Ligne de produits. Les deux premiers membres sont renvoyés parmi les valeurs maximales et les trois membres suivants sont renvoyés en tant que valeurs de dépassement. Matériel de camping Matériel de golf Matériel de montagne Articles de protection Accessoires personnels _firstFromSet ( [société_vacances_aventure].[Produits].[Produits].[Ligne de produits] ; 2 ; 2 ) Résultat : Matériel de camping, Matériel de golf Renvoie l'ensemble contenant "expression_membre" lorsque la taille de "expression_ensemble" est supérieure à la valeur "expression_numérique" , cela signifie qu'un nouveau membre est généré si le nombre de membres dans expression_ensemble est supérieur à la valeur expression_numérique définie. _remainderSet ( expression_membre; expression_ensemble ; expression_numérique ) _remainderSet ( member ( aggregate ( currentMeasure within set [société_vacances_aventure].[Produits].[Produits].[Ligne de produits] ) ; 'Product Aggregate' ; 'Product Aggregate' ; [société_vacances_aventure].[Produits].[Produits] ) ; [société_vacances_aventure].[Produits].[Produits].[Ligne de produits] ; 1 ) Résultat : Quantité vendue pour "Agrégat des produits"