Articles high-tech taggés "mdx"

Fil des billets - Fil des commentaires

Créer une requête dynamique dans un Dataset sous Reporting Service

Sous SSRS (Reporting services) les champs (fields) utilisés dans un objet tableau (ou Tablix sous Reporting Services 2008), ou tout objet d'affichage sont liés à la base de données via un dataset qui en lui même le résultat d'une requête SQL ou MDX. Ce dataset est lui-même rattaché à une data source qui permet une connexion à la base de données ou au cube OLAP pour restituer les données. La restitution des données ou Reporting sous SSRS permet de créer des rapports statiques, avec des requêtes figées ou des rapports dynamiques.

Pour tirer le meilleur parti de ces requêtes et permettre à utilisateur final d'afficher uniquement la sélection des données qui l'intéressent, comme par exemple en faisant des filtres sur une année, un produit ou une gamme, un client particulier, etc... il est nécessaire d'implémenter un maximum de fonctions dynamique dans les rapports. De plus l'utilisation de plusieurs paramètres conjointement permet d'affiner la sélection des données.Comment écrire différentes requêtes en fonction de...

Lire la suite 2 commentaires

Organiser les indicateurs SSAS en les masquant ou les plaçant dans un dossier Particulier avec du code MDX

Pour organiser les indicateurs de façon plus élégante et permettre des regroupements pour les utilisateurs finaux des solutions de Business Intelligence sous Analysis Services, surtout pour les utilisateurs d' Excel 2003 ou 2007 pour du Reporting Adhoc, il est préférable de les classer fonctionnellement dans des dossier nommés explicitement.

Pour gagner en ergonomie dans le reporting, les propriétés FORMAT_STRING, VISIBLE et DISPLAY_FOLDER sont très précieuses :

Cet exemple de code MDX permet de créé un indicateur basé sur un groupe de mesures dans notre fichier.cube , ce groupe de mesure contient en pratique un ou plusieurs champs issus d'une table créée au préalable dans notre Vue de données Vue_Exemple.dsv

CREATE MEMBER CURRENTCUBE.[Measures].[Domaine Fonctionnel - Indicateur Ventes] AS [Measures].[Indicateur des ventes - dans le groupe de mesures], FORMAT_STRING = "#,##0.00 €;-#,##0.00 €", VISIBLE = 1 , DISPLAY_FOLDER = 'Ventes'; A la première ligne nous crééons l'indicateur dans le Cube et nous indiquons sur quel groupe de mesures l' indicateur se basera dans le groupe de mesures en utilisant la commande MDX CREATE MEMBER AS A la deuxième ligne nous indiquons le format des données qui...

Lire la suite 1 commentaires

Comment calculer la médiane des membres d'un jeu de données dans une requête MDX

MEDIAN() est la fonction à utiliser.
En MDX, pour ne pas faire de savants calculs et ne pas "réinventer la roue", il est préférable d' utiliser les fonctions disponibles.

Comme la variable Avg() pour calculer les moyennes des membres, plutôt que de créer un membre calculé qui compte le nombre distinct de membres pour effectuer la moyenne.

Exemple de fonction MDX sous SSAS (testée sous SQL Server 2008) pour obtenir la médiane d'un indicateur provenant d'un cube multidimensionnel.

WITH MEMBER [Measures].[INDICATEUR] AS Median([Date].[Calendrier].CurrentMember.Children , [Measures].[Ventes Produits] ) SELECT [Measures].[INDICATEUR] ON 0, NON EMPTY [Date].[Calendrier].[Mois]* [Produits].[Catégories Produits].[Sous-Catégories].MEMBERS * [Géographie].[Géographie].[Country].MEMBERS ON 1 FROM [VOTRE_CUBE_MULTIDIMENSIONNEL]...

Lire la suite

Equivalent du SWITCH () en MDX sous SQL Server ?

Pour réaliser une requête conditionnelle avec plusieurs cas possible, un simple IIF(, ,) ne suffit pas. Le SWITCH() n'existe pas en MDX, les Switch utilisés dans SSRS viennent du fait que SSRS utilise le langage Visual Basic, pour ce faire en MDX il faut utiliser la commande CASE().

L'expression CASE en MDX permet de retourner des valeurs spécifiques en fonctions de plusieurs comparaisons, il existe 2 type d'expressions CASE. Un premier type (simple) qui permet de spécifier l'expression sur sur laquelle portera les tests. CASE [Expression à tester] WHEN Valeur1 THEN Valeur_de_retour_1 retournée si Expression est égale à la Valeur1 WHEN Valeur2 THEN Valeur_de_retour_2 retournée si Expression est égale à la Valeur2 ETC... [ELSE Valeur retournée dans tous les autres cas] END...

Lire la suite

Comment éviter les erreurs de type Division by Zero et les valeurs 1.#INF en MDX ?

En MDX, en calculant des taux, une erreur fréquente est la division par zéro quant le membre MDX retourné par la requête utilisé en tant que dividende est null ou égal à zéro.

Pour éviter les erreurs division by zero ou les résultats 1.#INF dans Reporting Services. On teste si le membre utilisé dans la division comme diviseur est égal à zéro, si c'est le cas on retourne la valeur NULL : MEMBER MEASURES.[Evolution] AS IIF( ([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER)=0, NULL, ([Measures].[Ventes Produit]-([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER)) / ([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER)...

Lire la suite

MdxScriptUpdater ou comment simplifier le passage en production de scripts MDX sous SQL Server Analysis Services ?

MdxScriptUpdater est une classe C# fournie en tant que freeware (freeware) entièrement gratuit qui simplifie la mise à jour de scripts MDX en environnement de production.

La dernière version est disponible en téléchargement : Télécharger gratuitement MdxScriptUpdater 1.0.0.0 L'utilisation n'est pas trés intuitive mais un article et une documentation sont disponibles en téléchargement : Article sur la classe MdxScriptUpdater. MdxScriptUpdater est proposé par la société SQLBI. Site officiel de SQLBI...

Lire la suite

Suivez le blog high-tech

  • Logo Twitter
  • Logo Facebook
  • Logo Youtube
  • Logo Fil RSS