0
DAX For Dummies                         Pascal Rouzé & Julien Vidal                           Consultants décisionnels    ...
PRÉSENTATIONDAX For Dummies
100 %           180 collaborateurs      Depuis 2007 à Paris - Lyon - Genève                  Dot Share                  NE...
DAX     • Le DAX (Data Analysis eXpression) est le langage utilisé       par :         PowerPivot         le modèle tabu...
Colonnes et mesures calculées                                     Colonne calculée                                        ...
BISM (BI Semantic Model)          Third-party                                                            Reporting        ...
Prérequis pour utiliser PowerPivot     •   Système d’exploitation 32 ou 64 bits     •   1 GB de RAM, 2 GB recommandés     ...
Type de données     Type             Description     Whole Number     Valeur entière     Decimal Number   Nombre réel     ...
Fonctions DAX     •    Plus de 170 fonctions avec SQL Server 2012         Fonctions d’information   ISBLANK(…), ISERROR(…)...
CAS D’UTILISATIONDAX For Dummies
Démonstration                  Scénario 1 : Table PériodeDAX For Dummies
Scénario 1 : Table Période     • Les utilisateurs veulent pouvoir effectuer rapidement des       comparaisons à partir de ...
Scénario 1 : Table Période     • Solution proposée adaptée         PowerPivot         DAXDAX For Dummies
Scénario 1 : Table Période     • Le modèle dans PowerPivot                        Dimensions      Dimension      Mesure ca...
Scénario 1 : Table Période                  DEMODAX For Dummies
Scénario 1 : Table Période     • Mesures DAX          Mesures intermédiaires :         –   [YTD Montant des commandes]:=T...
Démonstration                  Scénario 2 : AssuranceDAX For Dummies
Scénario 2 : Assurance     • Le service actuariat désire connaître le dernier montant       des rentes versées à chaque bé...
Scénario 2 : Assurance     • Solution proposée adaptée         PowerPivot         DAXDAX For Dummies
Scénario 2 : Assurance     • Le modèle de données dans Powerpivot                                 Dimension       Mesure c...
Scénario 2 : Assurance                  DEMODAX For Dummies
Scénario 2 : Assurance     • Mesures DAX          Mesures intermédiaires :         – [TotalRente]:=SUM(FaitRente[MontantR...
Démonstration                  Scénario 3 : Grande distributionDAX For Dummies
Scénario 3 : Grande distribution     • Le directeur financier d’une société de grande distribution       veut pouvoir déte...
Scénario 3 : Grande distribution     • Solution proposée adaptée         PowerPivot         DAXDAX For Dummies
Scénario 3 : Grande distribution     • Le modèle dans PowerPivot                                             Fait         ...
Scénario 3 : Grande distribution                  DEMODAX For Dummies
Scénario 3 : Grande distribution     • Mesures DAX          Mesures intermédiaires :         – [Qte MTD]:=TOTALMTD(SUMX(V...
Démonstration                  Scénario 4 : AssuranceDAX For Dummies
Scénario 4 : Assurance     • Le service de la gestion souhaite suivre le montant des       cotisations reçues :         É...
Scénario 4 : Assurance     • Solution proposée adaptée         SSAS en mode tabulaire         DAX         Rapport SQL S...
Scénario 4 : Assurance     • Le modèle de données dans SSAS en mode tabulaire      Dimension                              ...
Scénario 4 : Assurance                  DEMODAX For Dummies
Requête en DAX (1/2)     DEFINE – Définition des mesures calculées     MEASURE FaitCotisation[TotalCotisation] = SUM(FaitC...
Requête en DAX     (2/2)     -- Suite de la requête     EVALUATE     TOPN     (10,                   FILTER               ...
Requête en MDX     (1/2)     – Définition des jeux et des mesures calculées     WITH     SET JeuCodeIPAnneeNTrieCotisation...
Requête en MDX     (2/2)     -- Suite de la requête     MEMBER [Measures].[PourcentageTotalCotisation] AS                 ...
RÉFÉRENCESDAX For Dummies
Références  • DAX Resource Center Wiki   http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-    cent...
Quiz  1.   Comment faire des regroupements de données en DAX ?  2.   Peut-on joindre des jeux de données en DAX ?  3.   Co...
Donnez votre avis !                   Depuis votre smartphone, sur :                    http://notes.mstechdays.fr    De n...
Prochain SlideShare
Chargement dans... 5
×

DAX for dummies / DAX pour les NULS !

1,493

Published on

DAX DAX DAX ! Rien que du dax = Mise en œuvre des fonctions clés et avancées du langage DAX supportées par SSAS 2012 en mode tabulaire à partir de problématiques métiers classiques. Cas d'école et exemples concrets : le DAX par la pratique. Découvrez et maitrisez la puissance du langage DAX. Couplez le DAX avec PowerView pour explorer de façon interactive les données des modèles sémantiques BI Tabulaires et Multidimentionnels des cubes SSAS. Session coanimée par Julien Vidal et Pascal Rouzé (speakers aux techdays 2012).

0 commentaires
0 mentions J'aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Be the first to like this

Aucun téléchargement
Vues
Total des vues
1,493
Sur Slideshare
0
À partir des ajouts
0
Nombre d'ajouts
0
Actions
Partages
0
Téléchargements
40
Commentaires
0
J'aime
0
Ajouts 0
No embeds

No notes for slide
  • Intro Office / B2B / LOB / entreprise
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Exemple de page image
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • SSAS en mode tabulaire : nouveau besoin, gestion complémentaire des accès aux données via les rôlesSSRS comme outil de restitution (pas de sharepoint, Office en version ancienne)
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Exemple de page image
  • Les actuaires sont chargés d’effectuer les calculs de PM (provisions mathématiques) qui entrent en jeu notamment pour les ratios de solvabilité imposés par les contraintes législatives,
  • SSAS en mode tabulaire : nouveau besoin, gestion complémentaire des accès aux données via les rôlesSSRS comme outil de restitution (pas de sharepoint, Office en version ancienne)
  • SSAS en mode tabulaire : nouveau besoin, gestion complémentaire des accès aux données via les rôlesSSRS comme outil de restitution (pas de sharepoint, Office en version ancienne)
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Exemple de page image
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Exemple de page image
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • SSAS en mode tabulaire : nouveau besoin, gestion complémentaire des accès aux données via les rôlesSSRS comme outil de restitution (pas de sharepoint, Office en version ancienne)
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Define measure : ne dure que le temps de la requêteCalculate : permet le changement de contexte pour filtrer les donnéesIl existe d’autres fonctions pour arriver au même but (sameperiodlastyear)
  • Exemple de page de code pour le secteur dev
  • A titre indicatif
  • A titre indicatif
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Notation
  • Transcript of "DAX for dummies / DAX pour les NULS !"

    1. 1. DAX For Dummies Pascal Rouzé & Julien Vidal Consultants décisionnels MCNEXT www.mcnext.comOffice / B2B / LOB / Entreprise
    2. 2. PRÉSENTATIONDAX For Dummies
    3. 3. 100 % 180 collaborateurs Depuis 2007 à Paris - Lyon - Genève Dot Share NET Point Business Intelligence Biz Microsoft Talk Stand 97 – Zone bleu foncéDAX For Dummies
    4. 4. DAX • Le DAX (Data Analysis eXpression) est le langage utilisé par :  PowerPivot  le modèle tabulaire dans Analysis Services  Power View • Il est utilisé pour créer des mesures et colonnes calculées et pour interroger des modèles tabulaires.DAX For Dummies
    5. 5. Colonnes et mesures calculées Colonne calculée Mesure calculéeDAX For Dummies
    6. 6. BISM (BI Semantic Model) Third-party Reporting SharePoint Excel PowerPivot applications Services Power View Support des MDX modèles MD MDX DAX/MDX DAX prochainement Multi- Data Model dimensional Tabular Business logic and queries MDX DAX MOLA Direct Data Access ROLAP VertiPaq P Query Databases LOB Applications Files OData Feeds Cloud ServicesDAX For Dummies
    7. 7. Prérequis pour utiliser PowerPivot • Système d’exploitation 32 ou 64 bits • 1 GB de RAM, 2 GB recommandés • Windows XP SP3, Vista SP1, Windows 7 & 8 • .NET Framework 3.5 SP1 • Microsoft Office 2010, 2013DAX For Dummies
    8. 8. Type de données Type Description Whole Number Valeur entière Decimal Number Nombre réel Currency Devise TRUE/FALSE Booléen Text Chaîne de caractères Date Date/Heure commençant en 1900 Binary Donnée binaire importée depuis une source de données (une image par exemple)DAX For Dummies
    9. 9. Fonctions DAX • Plus de 170 fonctions avec SQL Server 2012 Fonctions d’information ISBLANK(…), ISERROR(…), etc. Fonctions de date MONTH(…), DATESYTD(…), PARALLELPERIOD(…), etc. Fonctions de chaîne TRIM(…), CONCATENATE(…), FORMAT(…), etc. Fonctions statistiques SUM(…), SUMX(…), COUNTROWS(…), MIN(…), etc. Fonction de filtres ALL(…), FILTER(…), etc. Fonctions logiques IF(…), SWITCH(…), AND, OR, etc. Fonctions mathématiques ABS(…), EXP(…), LOG(…), etc.DAX For Dummies
    10. 10. CAS D’UTILISATIONDAX For Dummies
    11. 11. Démonstration Scénario 1 : Table PériodeDAX For Dummies
    12. 12. Scénario 1 : Table Période • Les utilisateurs veulent pouvoir effectuer rapidement des comparaisons à partir de n’importe quelle date (par rapport à l’année dernière, Year-To-Date, etc.). Pour cela, on va créer une dimension « Période » spécifique.DAX For Dummies
    13. 13. Scénario 1 : Table Période • Solution proposée adaptée  PowerPivot  DAXDAX For Dummies
    14. 14. Scénario 1 : Table Période • Le modèle dans PowerPivot Dimensions Dimension Mesure calculée Colonne Hiérarchie FaitDAX For Dummies
    15. 15. Scénario 1 : Table Période DEMODAX For Dummies
    16. 16. Scénario 1 : Table Période • Mesures DAX  Mesures intermédiaires : – [YTD Montant des commandes]:=TOTALYTD([Montant des commandes]; Date Commande[Date]) – [Montant des commandes A-1]:=CALCULATE([Montant des commandes]; SAMEPERIODLASTYEAR(Date Commande[Date])) …  Mesure finale : – [Commandes]:=IF( HASONEVALUE(Période[Période]); SWITCH(VALUES(Période[Période]); "Courant"; [Montant des commandes]; "YTD"; [YTD Montant des commandes]; "Courant A-1"; [Montant des commandes A-1]; … BLANK() ); BLANK() )DAX For Dummies
    17. 17. Démonstration Scénario 2 : AssuranceDAX For Dummies
    18. 18. Scénario 2 : Assurance • Le service actuariat désire connaître le dernier montant des rentes versées à chaque bénéficiaire à une date spécifique.DAX For Dummies
    19. 19. Scénario 2 : Assurance • Solution proposée adaptée  PowerPivot  DAXDAX For Dummies
    20. 20. Scénario 2 : Assurance • Le modèle de données dans Powerpivot Dimension Mesure calculée Colonne Dimension FaitDAX For Dummies
    21. 21. Scénario 2 : Assurance DEMODAX For Dummies
    22. 22. Scénario 2 : Assurance • Mesures DAX  Mesures intermédiaires : – [TotalRente]:=SUM(FaitRente[MontantRente])  Mesure finale : – [DerniereRente]=CALCULATE([TotalRente]; LASTNONBLANK(Date[PK_Date];[TotalRente])) – [DateDerniereRente]=LASTNONBLANK(FaitRente[DateRenteValeur]; [TotalRente])DAX For Dummies
    23. 23. Démonstration Scénario 3 : Grande distributionDAX For Dummies
    24. 24. Scénario 3 : Grande distribution • Le directeur financier d’une société de grande distribution veut pouvoir déterminer la moyenne du nombre d’articles vendus par magasin depuis le début du mois.DAX For Dummies
    25. 25. Scénario 3 : Grande distribution • Solution proposée adaptée  PowerPivot  DAXDAX For Dummies
    26. 26. Scénario 3 : Grande distribution • Le modèle dans PowerPivot Fait Mesure calculée Dimensions Dimension Colonne HiérarchieDAX For Dummies
    27. 27. Scénario 3 : Grande distribution DEMODAX For Dummies
    28. 28. Scénario 3 : Grande distribution • Mesures DAX  Mesures intermédiaires : – [Qte MTD]:=TOTALMTD(SUMX(Vente; Vente[Quantite]); Date Vente[Date]) – [Nb Magasins]:=CALCULATE(COUNTROWS(DISTINCT(Magasin[Code Magasin])); Magasin[Code Magasin] <> ""; FILTER(Vente; [Qte MTD] > 0))  Mesure finale : – [Moyenne Par Magasin]:=IF(ISBLANK([Nb Magasins]); BLANK(); [Qte MTD] / [Nb Magasins])DAX For Dummies
    29. 29. Démonstration Scénario 4 : AssuranceDAX For Dummies
    30. 30. Scénario 4 : Assurance • Le service de la gestion souhaite suivre le montant des cotisations reçues :  Évolution annuelle  Répartition par institutionDAX For Dummies
    31. 31. Scénario 4 : Assurance • Solution proposée adaptée  SSAS en mode tabulaire  DAX  Rapport SQL Server Reporting ServicesDAX For Dummies
    32. 32. Scénario 4 : Assurance • Le modèle de données dans SSAS en mode tabulaire Dimension Dimension FaitDAX For Dummies
    33. 33. Scénario 4 : Assurance DEMODAX For Dummies
    34. 34. Requête en DAX (1/2) DEFINE – Définition des mesures calculées MEASURE FaitCotisation[TotalCotisation] = SUM(FaitCotisation[MontantCotisation]) MEASURE FaitCotisation[TotalCotisationPrevYear] = CALCULATE(FaitCotisation[TotalCotisation],PREVIOUSYEAR(Date[PK_Date])) MEASURE InstitutionPrevoyance[RangIpN] = IF(ISBLANK(FaitCotisation[TotalCotisation]),BLANK(), RANKX(ALL(InstitutionPrevoyance[InstitutionPrevoyance]),FaitCotisation[TotalCotisation])) MEASURE InstitutionPrevoyance[RangIpN-1] = IF(ISBLANK(FaitCotisation[TotalCotisationPrevYear]),BLANK(), CALCULATE([RangIpN],PREVIOUSYEAR(Date[PK_Date]))) MEASURE InstitutionPrevoyance[CategorieClassementIP] = IF(InstitutionPrevoyance[RangIpN]<6,"Sous-Total Top 5",IF(InstitutionPrevoyance[RangIpN]<11,"Sous- Total Top 10","Autres IP")) MEASURE InstitutionPrevoyance[PourcentageTotalCotisation] =FaitCotisation[TotalCotisation]/ CALCULATE(FaitCotisation[TotalCotisation],ALL(InstitutionPrevoyance[InstitutionPrevoyance]))DAX For Dummies
    35. 35. Requête en DAX (2/2) -- Suite de la requête EVALUATE TOPN (10, FILTER ( ADDCOLUMNS ( SUMMARIZE(FaitCotisation,Date[Année_Nom],InstitutionPrevoyance[InstitutionPrevoyance]), "Cotisation N", FaitCotisation[TotalCotisation], "Cotisation N-1",FaitCotisation[TotalCotisationPrevYear], "Rang N",InstitutionPrevoyance[RangIpN], "Rang N-1",InstitutionPrevoyance[RangIpN-1], "ClassementCategorieIP",InstitutionPrevoyance[CategorieClassementIP], "PourcentageTotalCotisation",InstitutionPrevoyance[PourcentageTotalCotisation] ) ,Date[Année_Nom]=2012 -- pour SSRS remplacer 2012 par VALUE(@Annee) nous permet davoir un paramètre année )-- Fin FILTER ,InstitutionPrevoyance[RangIpN],1 )-- Fin TOPN ORDER BY Date[Année_Nom] DESC,FaitCotisation[TotalCotisation] DESC;--Fin EVALUATEDAX For Dummies
    36. 36. Requête en MDX (1/2) – Définition des jeux et des mesures calculées WITH SET JeuCodeIPAnneeNTrieCotisationDesc AS HEAD(EXTRACT(NONEMPTY(ORDER((EXCEPT([Institution Prevoyance].[Code Institution Prevoyance].[Code Institution Prevoyance].MEMBERS,[Institution Prevoyance].[Code Institution Prevoyance].&[Inconnu])-[Institution Prevoyance].[Code Institution Prevoyance].&)*(STRTOMEMBER(@Annee)),[Measures].[MontantCotisation] , BDESC )), [Institution Prevoyance].[Code Institution Prevoyance]),10) SET JeuCodeIPAnneeNMoins1TrieCotisationDesc AS EXTRACT(ORDER((EXCEPT([Institution Prevoyance].[Code Institution Prevoyance].[Code Institution Prevoyance].MEMBERS,[Institution Prevoyance].[Code Institution Prevoyance].&[Inconnu])-[Institution Prevoyance].[Code Institution Prevoyance].&)*(STRTOMEMBER(@AnneePrecedent)),[Measures].[Montant Cotisation] , BDESC ),[Institution Prevoyance].[Code Institution Prevoyance]) MEMBER [Measures].[RangIpAnneeN] AS Rank([Institution Prevoyance].[Code Institution Prevoyance].CurrentMember, JeuCodeIPAnneeNTrieCotisationDesc) MEMBER [Measures].[RangIpAnneeNMoins1] AS Rank([Institution Prevoyance].[Code Institution Prevoyance].CurrentMember, JeuCodeIPAnneeNMoins1TrieCotisationDesc)DAX For Dummies
    37. 37. Requête en MDX (2/2) -- Suite de la requête MEMBER [Measures].[PourcentageTotalCotisation] AS ([Measures].[Montant Cotisation],STRTOMEMBER(@Annee))/SUM(ROOT([Institution Prevoyance]),([Measures].[Montant Cotisation],STRTOMEMBER(@Annee))) MEMBER [Measures].[CategorieClassementIP] AS CASE WHEN ([Measures].[RangIpAnneeN] <6) THEN "Sous-Total Top 5" WHEN ([Measures].[RangIpAnneeN] <11) THEN "Sous-Total Top 10" ELSE "Autres IP" END MEMBER [Measures].[MontantCotisation] AS ([Measures].[Montant Cotisation],STRTOMEMBER(@Annee)) SELECT {[Measures].[MontantCotisation],[Measures].[PourcentageTotalCotisation],[Measures].[RangIpAnneeN],[Measures].[RangIpAnneeNMoins1] ,[Measures].[CategorieClassementIP]} ON 0, JeuCodeIPAnneeNTrieCotisationDesc*[Institution Prevoyance].[Institution Prevoyance].[Institution Prevoyance].MEMBERS ON 1 FROM [Cube]DAX For Dummies
    38. 38. RÉFÉRENCESDAX For Dummies
    39. 39. Références • DAX Resource Center Wiki  http://social.technet.microsoft.com/wiki/contents/articles/dax-resource- center.aspx • MSDN Library – Data Analysis Expressions Reference  http://msdn.microsoft.com/en-us/library/gg413422%28v=sql.110%29.aspx • Paul Te Braak – Blog  http://paultebraak.wordpress.com/category/dax/ • Chris Webb – Blog  http://cwebbbi.wordpress.com/category/dax/ • Marco Russo – Blog  http://sqlblog.com/blogs/marco_russo/DAX For Dummies
    40. 40. Quiz 1. Comment faire des regroupements de données en DAX ? 2. Peut-on joindre des jeux de données en DAX ? 3. Comment afficher la liste de mes produits en DAX ? 4. Sur une dimension historisée (par exemple produits), comment puis-je calculer le nombre de mes produits ?DAX For Dummies
    41. 41. Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDayshttp://notes.mstechdays.fr
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×