4 Replies Latest reply: Feb 9, 2017 12:30 PM by f m RSS

    Création table de fait / join? pour cause de lenteur

    f m

      Bonjour

       

      suite a ma dernière venue , j'ai donc créé une application "de requète" ou j'ai mon script et créé des QVD, que je réutilise ensuite dans la création de mon dashboard. Or mon application est très lente et plante.

      J'ai 5 tables qui créé 5 QVD que j'appelle ensuite dans mon application finale :

      1 consommation : tab Excel des Produits consommés par Services

      2 livraison : Livraison des Produits

      3 Dotation : Quantité de Produits par Services

      4 Service : nom des Services

      5 Calendrier : (non présent dans le script)

       

      Après recherche il semblerait qu'il faille que je fasse une "table de fait".

       

      Je pense avoir compris le fonctionnement mais je ne comprend pas comment faire ou ce qui en va pas dans mon script

       

      voici le script que j'utilise dans mon application 'Requête' et ma tentative de table de fait (a la fin)  . mais ça ne marche pas. ou alors ce n'est pas ce qu'il faut faire...

       

      Merci beaucoup de votre aide.

       

       

      Consommation:

      LOAD

           [Date mouvement]as Date,

           [N° produit],

           Libellé,

           [Nom type],

           [PMP (HT)],

           [Mode de gestion],

           [Lieu stockage général produit],

           [Libellé lieu stockage général produit],

           [Référence mouvement 2],

           [Code service],

           [Nom service],

           [Type de mouvement],

           [Valeur mouvement (HT)],

           [Quantité mouvement]

      FROM

      [C:\Users\fnony\Documents\_01BKP\_Tableau_bord\Pharmacie\_Data & Requete\1_Sorties pharma 2016.xlsx]

      (ooxml, embedded labels, table is Consommations);

       

      STORE Consommation into 1_consommation.qvd(qvd);

       

      Livraison:

      LOAD

           [Date mouvement]as Date,

           [N° produit],

           //[Code externe produit GEF],

           //Libellé,

           [Mode de gestion],

           //[Nom type],

           [Référence mouvement 1],

           //[Type de mouvement],

           [Quantité mouvement]as QteLivrée,

           [Valeur mouvement (HT)]as MontantAchatHT

           //[N° fournisseur],

           //[Libellé fournisseur]

      FROM

      [C:\Users\fnony\Documents\_01BKP\_Tableau_bord\Pharmacie\_Data & Requete\2_Entrées pharma 2016.xlsx]

      (ooxml, embedded labels, table is Livraisons);

       

      STORE Livraison into 2_Livraison.qvd(qvd);

       

       

      Dotation:

      LOAD [Identifiant de Service]as [Code service],

           //[Nom service],

           Nom as   Libellé,

           //[CodeNom Type],

           [Dotation du service]as Dotation

           //[Nom Type]as [Nom type]

      FROM

      [C:\Users\fnony\Documents\_01BKP\_Tableau_bord\Pharmacie\_Data & Requete\3_dotations.xlsx]

      (ooxml, embedded labels, table is dotations);

       

      STORE Dotation into 3_Dotation.qvd(qvd);

       

      Service:

      LOAD UF,

           Etage,

           Bâtiment

      FROM

      [C:\Users\fnony\Documents\Fichier UF\UFListe.xlsx]

      (ooxml, embedded labels, table is UFpharma);

       

      Store Service into 6_Service.qvd(qvd);

       

      // voici ma table de fait //

      Fait:

      LOAD

            null() as [Date mouvement],

           [N° produit],

           Libellé,

           [Nom type],

           [PMP (HT)],

           [Mode de gestion],

           [Lieu stockage général produit],

           [Libellé lieu stockage général produit],

           [Référence mouvement 2],

           null() as [Code service],

           null () as [Nom service],

           null () as [Type de mouvement],

           [Valeur mouvement (HT)] as ValeurConso,

           [Quantité mouvement];

       

      SELECT [N° produit],[Nom type],[PMP (HT)],[Mode de gestion],[Lieu stockage général produit],[Libellé lieu stockage général produit],[Référence mouvement 2],[Valeur mouvement (HT)],[Quantité mouvement]

      From Consommation;

       

      LOAD

           null() as [Date mouvement],

           null() as [N° produit],

           //[Code externe produit GEF],

           //Libellé,

           null () as [Mode de gestion],

           //[Nom type],

           [Référence mouvement 1]as NumCommande,

           //[Type de mouvement],

           [Quantité mouvement]as QteLivrée,

           [Valeur mouvement (HT)]as MontantAchatHT;

           //[N° fournisseur],

           //[Libellé fournisseur]

      Select [Référence mouvement 1],[Quantité mouvement],[Valeur mouvement (HT)]from Livraison;

       

       

      LOAD null()as [Identifiant de Service],

           //[Nom service],

           null()as Nom,

           //[CodeNom Type],

           [Dotation du service]as Dotation;

      Select [Dotation du service]from Dotation;

       

      LOAD

           UF as [Code service],

           null() as Etage,

           null() as Bâtiment;

      SELECT UF from Service;

       

      STORE Fait into 5_TableFait.qvd(qvd);

        • Re: Création table de fait / join? pour cause de lenteur
          Philippe NICOLAS

          Bonjour,

          il vous faut "jeter" la table que vous avez chargée en qvd, et, pour créer la table des faits, appeler le fichier qvd correspondant.

           

          Soit, pour la table service:

          Service:

          LOAD UF,

               Etage,

               Bâtiment

          FROM

          [C:\Users\fnony\Documents\Fichier UF\UFListe.xlsx]

          (ooxml, embedded labels, table is UFpharma);

           

          Store Service into 6_Service.qvd(qvd);

          Drop table Service;

           

          Fait:

          LOAD

               UF as [Code service],

               null() as Etage,

               null() as Bâtiment

          from  6_Service.qvd;

           

          mais, je ne suis qu'un novice .....

            • Re: Création table de fait / join? pour cause de lenteur
              f m

              Bonjour

               

              Merci de votre réponse mais ça ne marche pas très bien, j'ai bien suivi la consigne dans mon application requête.

              j'ai une autre table qui s'est créé.

              J'ai encore des clé synthétiques un peu partout et je en sais pas si c'est normal.

              mais lorsque je recharge tous mes qvd dans mon application finale, je n'ai plus mes donnée en totalité.. c'est fâcheux du coup!!!

               

              voila le schéma que j'ai dans mon application finale et je ne sais pas si c'est correct. 

                • Re: Création table de fait / join? pour cause de lenteur
                  Philippe NICOLAS

                  en cas de clés synthétiques, on peut soit renommer les champs concernés (date en date_conso, et date en date_livraison), ou, ne pas charger l'un des champs dans une des tables ( mode de gestion si les infos sont identiques).

                  dans votre shéma, si vous sélectionnez une Date dans le calendrier, Qv ne saura pas si c'est la date de conso ou celle de livraison.

                  enfin, c'est ce que je crois savoir à cette heure :-))

                    • Re: Création table de fait / join? pour cause de lenteur
                      f m

                      Bonsoir

                       

                      je crois que ça deviens trop compliqué pour moi.

                      je croyais justement qu'il fallait nommer les champ avec le même nom de manière a avoir un lien entre les tables.

                      Par exemple en ce qui concerne les Produits ils sont dans 2 tables (conso et livraison) je suis bien obligé de les faire correspondre avec un nom unique si je veux pouvoir comparer les données Achat et consommations ?

                      Non?