15 Replies Latest reply: May 17, 2018 10:37 AM by Tatiana Stydneva RSS

    Modification de table

    Tatiana Stydneva

      Bonjour

       

      J'ai besoin d'une table "comme dans Excel": à gauche - des dimensions qulles j'ai créé d'avance, à droite - leurs valeurs par dates.

      Comment supprimer les cellules vides grises (screenshot en PJ) dans la partie gauche de la pivot table (ou table ordinaire), svp?

       

      Merci

        • Re: Modification de table
          Marwen Garwachi

          Bonjour,

           

          Il faut créer une seule dimension à partir de tes 3 dimensions.

           

          Sinon tu peux inverser ton tableau = mettre les dates dans la dimension et les valeurs que tu souhaites obtenir dans des expressions.

           

          Il serait préférable de partager la structure de tes tables ou du moins le contenu des champs (count ? sum ? valeurs numériques ?  dates ? etc...) pour mieux comprendre ton besoin et te proposer la solution la plus adéquate.

           

          Bon courage !

           

          Marwen

            • Re: Modification de table
              Tatiana Stydneva

              Merci!

               

              Comment créer une seule dimension à partir de 3? J'ai déjà essayé avec "Hiérarchie" mais ça pas marché.

               

              Pour le contenu des champs: on charge les données de la base de données. À gauche - les noms de certains indicateurs financiers, à droite - leurs valeurs par périodes (chiffres (Only(valeur)), dates, etc).

               

              Tatiana

                • Re: Modification de table
                  LAURENT CLOATRE

                  Tu regroupes tes 3 dimensions dans le même champ et tu crées un second champ qui les différenciera.

                   

                  Exemple :

                  Au lieu d'avoir une table avec 4 colonnes

                  - Niveau 1

                  - Niveau 2

                  - Niveau 3

                  - Valeur

                   

                  Tu crées une table avec 3 colonnes

                  - Niveau

                  - Hierarchie (1, 2, 3)

                  - Valeur

                   

                  En plus, si tu ajoutes des niveaux (4, 5, ...), tu n'as pas à modifier la structure de ta table.

                  • Re: Modification de table
                    Sébastien Fatoux

                    Le problème doit venir du chargement des données.

                     

                    Peux-tu nous fournir ton script de chargement en pièce jointe?

                      • Re: Modification de table
                        Tatiana Stydneva

                        Script de chargement des données en PJ. 

                        Pour trouver la dimension:

                         

                        =If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100', 'Financial assets designated at fair value through profit or loss')

                         

                        Des colonnes: date_d_arrete

                        Mesure: Only(value_monetary)

                          • Re: Modification de table
                            Sébastien Fatoux

                            Quels sont les conditions pour les 2 autres dimensions ?

                              • Re: Modification de table
                                Tatiana Stydneva

                                =If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='050', 'Financial assets held for trading')

                                 

                                et

                                 

                                =If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='240', 'Derivatives – Hedge accounting')

                                  • Re: Modification de table
                                    Sébastien Fatoux

                                    Tu peux construire ta dimension calculée ainsi :

                                     

                                     

                                    =If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100',

                                        'Financial assets designated at fair value through profit or loss',

                                        If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='050',

                                            'Financial assets held for trading',

                                            If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='240',

                                                'Derivatives – Hedge accounting'

                                            )

                                        )

                                    )

                                      • Re: Modification de table
                                        Tatiana Stydneva

                                        Merci! Il me semble que j'ai besoin plus de sommeil

                                        • Re: Modification de table
                                          Sébastien Fatoux

                                          Mais gérer ceci dans le script serait plus propre :

                                          Tu peux compléter la liste au besoin, ou remplacer le Inline par le chargement d'un fichier Excel,...

                                           

                                          LIB CONNECT TO 'DB chargement';


                                          Map_Libellé:
                                          Mapping
                                          LOAD
                                              table_code & '_' & rc_code_de_colonne & '_' & rc_code_de_ligne AS libellé_id,
                                              libellé
                                          Inline [
                                              table_code, rc_code_de_colonne, rc_code_de_ligne, libellé
                                              f_01.01, 010, 100, Financial assets designated at fair value through profit or loss
                                              f_01.01, 010, 050, Financial assets held for trading
                                              f_01.01, 010, 240, Derivatives – Hedge accounting
                                          ];

                                           

                                          LOAD
                                              *,
                                              ApplyMap('Map_Libellé', table_code & '_' & rc_code_de_colonne & '_' & rc_code_de_ligne, Null() ) AS Libellé;
                                          SQL SELECT id,
                                              "value_monetary",
                                            ...
                                              "value_fact"
                                          FROM dbtest.dbo."bi_table";

                                          • Re: Modification de table
                                            Tatiana Stydneva

                                            Et si j'ai besoin de faire qques calcules pour des valeurs  "table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100'" et "table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='050'" ?

                                             

                                            Par ex, "table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100'" - "table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='050'".


                                            Si je ne me trompe pas je ne peux pas utiliser dans la mesure calculée les formules comme

                                            If((table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100'),

                                            (table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100') - (table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='050')).

                                             

                                            Mais quelle devrait être une formule pour que je puisse l'utiliser comme une mesure calculée, svp?

                                              • Re: Modification de table
                                                Marwen Garwachi

                                                Il faudra utiliser les set analysis :

                                                 

                                                La formule devrait ressembler à cela  :

                                                sum({$<table_code={'f_01.01' } , rc_code_de_colonne={'010' } , rc_code_de_ligne= {'100' }>} Valeur) -

                                                sum({$<table_code={'f_01.01' } , rc_code_de_colonne={'010' } , rc_code_de_ligne= {''050' }>} Valeur)

                                                  • Re: Modification de table
                                                    Tatiana Stydneva

                                                    Oui, j'ai essayé cette formule mais je n'ai pas compris d'ou vient le résultat 

                                                    table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100' = 45 570 241 336

                                                    table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='050' = 29 781 965 897

                                                    Cela veut dire que je doit avoir en résultat 15 788 275 439, mais j'ai 227 851 202 560.

                                              • Re: Modification de table
                                                Marwen Garwachi

                                                Essaies de faire une seule dimension  :

                                                If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100', 'Financial assets designated at fair value through profit or loss' ,

                                                If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='050', 'Financial assets held for trading' ,

                                                If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='240', 'Derivatives – Hedge accounting' )))

                                    • Re: Modification de table
                                      LAURENT CLOATRE

                                      Je suis partisan de créer un champ concaténant les champs TABLE_CODE, RC_CODE_DE_COLONNE et RC_CODE_DE_LIGNE et de créer une table de mapping.