12 Replies Latest reply: Nov 13, 2014 11:25 AM by SOULEIMANE BELARIBI RSS

    Créer fichier .QVD

      Bonjour tout le monde,

      Je veux créer un Fichier QVD aprés le chargement de mes données, donc j'ai ajouter cette instruction dans mon script de chargement :

      Reservation:

      ADD LOAD

          "ID_RESA",  

          "MONTANT_TOTAL";

      SQL SELECT

          "ID_RESA",

          "MONTANT_TOTAL"

      FROM DB.RESERVATIONS;

       

      STORE Reservation into C:\Users\user1\Desktop\ProjetQlikView\QVD\Reservation.QVD;

      DROP TABLE Reservation;

       

      mais il m'affiche le message d'erreur suivant :

      L'exécution du script a échoué. Recharger les anciennes données?

       

      1-Pouriez vous svp me dire ce que je fais de faux?

      2- et Aprés avoir créer ces fichier, Comment je peux les réutuliser la prochaine fois ? est ce que je dois changer le script ou faire autre chose ?

       

      Merci pour votre aide.

       

      Cordialement.

        • Re: Créer fichier .QVD
          christian juillard

          Bonjour Philippe

           

          1.  Il faut encadrer le chemin avec des []  ou " "

          STORE Reservation into  [C:\Users\user1\Desktop\ProjetQlikView\QVD\Reservation.QVD];

           

          2. pour les recharger, 

           

          LOAD * from [C:\Users\user1\Desktop\ProjetQlikView\QVD\Reservation.QVD];   tout simplement

           

          cordialement

          Christian

          • Re: Créer fichier .QVD

            Bonjour tout le monde,

             

            Je vous remercie pour toutes ces réponses.

            j'ai une question dans le même contexte.

            est ce que vous pouvez me donner un exemple simple de chargement de tables, et son stockage avec une instruction STORE.
            Ce que je fais en ce moment c'est ça:

            load champ1, champ2,....ect;

            select champ1, champ2,....ect from DOCUMENTS;

            STORE DOCUMENTS into [C:\Users\vincentl\Desktop\Projet QlikView\DOCUMENTS.QVD];

            DROP TABLE DOCUMENTS;

             

            Si je veux charger les autres table est ce que je nom le fichier QVD, avec le même nom de la table chargée ou bien leur donner un nom commun pour toutes les tables.

            Exemple : Est-ce que je fait ça:

            DOCUMENTS:

            Load champ1, champ2,....ect;

            select champ1, champ2,....ect from DOCUMENTS;

            STORE DOCUMENTS into [C:\Users\vincentl\Desktop\Projet QlikView\DOCUMENTS.QVD];

            DROP TABLE DOCUMENTS;

            LIGNES:

            Load champ1, champ2,....ect;

            select champ1, champ2,....ect from LIGNES;

            STORE DOCUMENTS into [C:\Users\vincentl\Desktop\Projet QlikView\LIGNES.QVD];

            DROP TABLE LIGNES;

             

            Ou bien je fais ça (METHODE 2)

            DOCUMENTS:

            Load champ1, champ2,....ect;

            select champ1, champ2,....ect from DOCUMENTS;

            STORE DOCUMENTS into [C:\Users\vincentl\Desktop\Projet QlikView\DATA.QVD];

            DROP TABLE DOCUMENTS;

            LIGNES:

            Load champ1, champ2,....ect;

            select champ1, champ2,....ect from LIGNES;

            STORE DOCUMENTS into [C:\Users\vincentl\Desktop\Projet QlikView\DATA.QVD];

            DROP TABLE LIGNES;


            et comment joindre deux tables pour créer un champs calculé avec un test?

             

            Je vous remercie tous pour votre contribution.


            Cordialement,

              • Re: Créer fichier .QVD
                Stephane de Mendon�a

                Bonjour Slim1501,

                 

                A ma connaissance les fichiers QVD ne contiennent qu'une seule table, ainsi chaque chargement de données dans un QVD remplacera les données déjà présentes. Donc il te faut créer 1 fichier QVD par table. Avec ta méthode 2 seules les données de la table LIGNE seront insérées dans le QVD DATA.

                 

                Exemple de script :

                 

                Table1:

                LOAD * ;

                SQL SELECT champ1, champ2, ... FROM BLABLA;

                 

                STORE Table1 INTO REQUETE.qvd (QVD);

                 

                Concernant ta demande pour joindre 2 tables, est-ce en rapport avec les QVD ? Il faudrait que tu donnes un exemple de ce que tu veux faire pour qu'on puisse te répondre correctement.

                  • Re: Créer fichier .QVD

                    Bonsoir Stephane_DM,

                     

                    Je vous remercie pour votre réponse,
                    Concernant ma deuxième question, elle est un peu longue mais je suis bloqué et je n'arrive pas à trouver la solution:

                    En fait je souhaitrais créer un champ "catégorie" de la table ARTICLES seulement voila pour créer ce champ il faut faire un test sur un autre champ DOC_STYPE d'une autre table qui s'appelle DOCUMENTS.
                    J'ai donc, pensé de charger la table LIGNES qui à la clé de la table ARTICLES et la clé de la table DOCUMENTS, puis créer mon champ. mais ça n'a pas marché, il m'affiche

                    Table introuvable

                    tmp_Link_Table:

                     

                    LOAD DISTINCT "ART_CODE", "DOC_NUMERO", "DOC_STYPE" Resident ARTICLES

                     

                    Puis cette deuxième erreur :

                    Table introuvable

                    Concatenate (tmp_Link_Table)

                    LOAD

                    IF(ART_CATEG,

                              if(DOC_STYPE = 'F', 'Produits Finis',

                              if(DOC_STYPE = 'S', 'Produits Semi-Finis',

                              if(DOC_STYPE = 'M', 'Matières 1ères',

                              if(DOC_STYPE = 'O', 'Main d''oeuvre',

                              if(DOC_STYPE = 'T', 'Sous-traitance',

                              if(DOC_STYPE = 'A', 'Autres'

                              ))))))

                        ) as Catégorie

                    Resident ARTICLES

                     

                     

                    voici mon code :

                     

                    ARTICLES:

                    LOAD    "ART_CODE",

                            "ART_CATEG",

                            "FAR_CODE",

                            "SFA_CODE",

                            "ART_LIB",

                            "ART_P_PRV",

                            "FA4_CODE",

                            "ART_NCOLIS",

                            "ART_TGAMME",

                            "PCF_CODE";

                     

                    SQL SELECT  "FAR_CODE",

                                "ART_CODE",

                                "ART_CATEG",

                                "SFA_CODE",

                                "ART_LIB",

                                "ART_P_PRV",

                                "FA4_CODE",

                                "ART_NCOLIS",

                                "ART_TGAMME",

                                "PCF_CODE"

                    FROM ICP.dbo.ARTICLES;

                    STORE ARTICLES into [C:\Users\vincentl\Desktop\Projet QlikView\DATA_ICP.QVD];

                     

                    DROP TABLE ARTICLES;

                     

                    /*ARTICLES:

                    LOAD    "ART_CODE",

                            "ART_CATEG",

                            "FA4_CODE",

                            "FAR_CODE",

                            "SFA_CODE",

                            "ART_LIB",

                            "ART_P_PRV",

                            "FA4_CODE"

                    from DATA_ICP.qvd (qvd);*/

                     

                    LIGNES:

                    LOAD *;

                    SQL select * from LIGNES;

                     

                    DOCUMENTS:

                    LOAD "DOC_NUMERO",

                         "DOC_STYPE";

                    SQL SELECT DOC_NUMERO, DOC_STYPE FROM DOCUMENTS;

                     

                    tmp_Link_Table:

                     

                    LOAD DISTINCT "ART_CODE", "DOC_NUMERO", "DOC_STYPE" Resident ARTICLES;

                     

                    Concatenate (tmp_Link_Table)

                    LOAD

                    "DOC_STYPE",

                    IF(ART_CATEG,

                              if(DOC_STYPE = 'F', 'Produits Finis',

                              if(DOC_STYPE = 'S', 'Produits Semi-Finis',

                              if(DOC_STYPE = 'M', 'Matières 1ères',

                              if(DOC_STYPE = 'O', 'Main d''oeuvre',

                              if(DOC_STYPE = 'T', 'Sous-traitance',

                              if(DOC_STYPE = 'A', 'Autres'

                              ))))))

                        ) as Catégorie

                    Resident ARTICLES;

                     

                    Je vous remercie par avance !

                      • Re: Créer fichier .QVD
                        Stephane de Mendon�a

                        La table tmp_Link_Table ne peut pas se créer car la table ARTICLES n'existe plus : au début du script la table ARTICLES est générée grâce au fichier QVD mais ensuite elle est supprimée : DROP TABLE ARTICLES.

                         

                         

                        Par contre, je penses que tu as oublié la 3e partie de ton 1er IF dans le dernier LOAD. Tu n'indiques pas ce qu'il se passe lorsque ART_CATEG est égale à l'un des résultats des IF suivants.

                          • Re: Créer fichier .QVD

                            Bonjour Stephane,

                             

                            Je te remercie pour ta réponse!

                            Concernant ma requete avec le champ ART_CATEG, la voici:

                              CASE (A.ART_CATEG)

                                    WHEN 'F' THEN 'Produits Finis'

                                    WHEN 'S' THEN 'Produits Semi-Finis'

                                    WHEN 'M' THEN 'Matières 1ères'

                                    WHEN 'O' THEN 'Main d''oeuvre'

                                    WHEN 'T' THEN 'Sous-traitance'

                                    WHEN 'A' THEN 'Autres'

                              END AS 'Catégorie',

                            Je ne sais pas comment la faire sur Qlikview!!

                            J'ai une autre question STP! Comment faire pour enlever tout les $Syn?

                             

                            Je te remercie par avance.

                             

                            Je remercie aussi tous ceux qui ont répondu à ma question.

                              • Re: Créer fichier .QVD
                                christian juillard

                                Bonjour Philippe

                                 

                                pour enlever les $Syn il y a 4 possiilités

                                1. joindre les tables sur les champs communs s'ils ne sont pas trop nombreux (join)

                                2. concatener les tables  (concatenate)

                                3. concatener les champs en 1 clé unique  autonumber(Champ1 & '-' & champ2 & '-' Champ n) as KeyID

                                4. utliser une table centrale de liens (MasterLink:  qui contient toutes les clés)

                                 

                                Christian

                                  • Re: Créer fichier .QVD

                                    Bonjour Chritianj,


                                    comment utilisé autonumber dans mon cas j'ai beaucoup de tables par exemple :

                                    la clé primaire dans DOCUMENTS c'est seulement DOC_NUMERO, mais il y a des clés étrangères comme IdDEV, IdPay,idTiers.

                                     

                                    LOAD     "DOC_DATE",

                                            Month(DOC_DATE) as [Mois],

                                            Year("DOC_DATE") as [Année],

                                            Date("DOC_DATE") as [Date],

                                            If(DOC_TYPE = 'A', 'Achat', if(DOC_TYPE = 'V', 'Ventes')) as [Type de doc],

                                            If(DOC_TYPE = 'V',

                                              if(DOC_STYPE = 'P', 'Pro-forma',

                                              if(DOC_STYPE = 'D', 'Devis',

                                              if(DOC_STYPE = 'C', 'Commandes',

                                              if(DOC_STYPE = 'B', 'Bons de Livraison',

                                              if(DOC_STYPE = 'R', 'Bons de Retour',

                                              if(DOC_STYPE = 'F', 'Factures',

                                              if(DOC_STYPE = '1', 'Factures Financières',

                                              if(DOC_STYPE = 'A', 'Avoirs',

                                              if(DOC_STYPE = '0', 'Avoirs Financiers',

                                              ))))))))),

                                              if(DOC_TYPE =  'A',

                                              if(DOC_STYPE = 'D', 'Demandes de Prix',

                                              if(DOC_STYPE = 'C', 'Commandes',

                                              if(DOC_STYPE = 'B', 'Bons de Réceptions',

                                              if(DOC_STYPE = 'R', 'Bons de Retour',

                                              if(DOC_STYPE = 'F', 'Factures',

                                              if(DOC_STYPE = '1', 'Factures Financières',

                                              if(DOC_STYPE = 'A', 'Avoirs',

                                              if(DOC_STYPE = '0', 'Avoirs Financiers')

                                              ))))))))

                                              ) as [Sous_Type_de_doc],

                                            "DEV_CODE" AS IdDEV,

                                            "DOC_DT_PRV",

                                            "DOC_EN_TTC",

                                            "DOC_ETAT",

                                            "DOC_NUMERO" as IdDoc,

                                            "DOC_PIECE" AS 'N° Pièce',

                                            "DOC_STYPE",

                                            "DOC_TX_DEV" AS 'Cours Devise',

                                            "DOC_TX_ESC",

                                            "DOC_TXRFAC",

                                            "DOC_TYPE",

                                            "PAY_CODE" as IdPay,

                                            "PCF_REMVAL",

                                            "PCF_CODE" as idTiers

                                    FROM  $(vSaveQVD) DOCUMENTS.QVD(qvd);

                                     

                                    SQL SELECT  "DEV_CODE",

                                                "DOC_DATE",

                                                "DOC_DT_PRV",

                                                "DOC_EN_TTC",

                                                "DOC_ETAT",

                                                "DOC_NUMERO",

                                                "DOC_PIECE",

                                                "DOC_STYPE",

                                                "DOC_TX_DEV",

                                                "DOC_TX_ESC",

                                                "DOC_TXRFAC",

                                                "DOC_TYPE",

                                                "PAY_CODE",

                                                "PCF_REMVAL",           

                                                "PCF_CODE"

                                    From DOCUMENTS

                                    WHERE DOC_TYPE IN ('A','V');

                                     

                                    DEVISES:

                                    LOAD    DEV_CODE as IdDEV,

                                            DEV_CODE as IdDEV_ARC,

                                            DEV_LIB AS 'Devise',

                                            DEV_INCERT

                                           

                                    FROM $(vSaveQVD) DEVISES.QVD(qvd);

                                     

                                    SQL SELECT "DEV_CODE",

                                            "DEV_LIB",

                                            "DEV_INCERT"

                                    From DEVISES;

                                     

                                    LIGNES:

                                    LOAD DOC_NUMERO& '|' &LIG_NUMERO&'|'&LIG_SUBNUM AS ID_LIGNES, /*Clé primaire*/

                                        "DOC_NUMERO" as IdDoc,

                                        "LIG_NUMERO",

                                        "LIG_SUBNUM",

                                        "LIG_TYPE",

                                        "LIG_QTE",

                                        "ART_CODE" as IdArt,

                                        "LIG_P_BRUT",

                                        "LIG_TOTAL",

                                        "NAT_TVATX",

                                        "LIG_COUT",

                                        "LIG_UB" as CodeUC

                                    from $(vSaveQVD) LIGNES.QVD(qvd);

                                          

                                    SQL SELECT     "DOC_NUMERO",

                                                "LIG_NUMERO",

                                                "LIG_SUBNUM",

                                                "LIG_TYPE",

                                                "LIG_QTE",

                                                "ART_CODE",

                                                "LIG_P_BRUT",

                                                "LIG_TOTAL",

                                                "NAT_TVATX",

                                                "LIG_COUT",

                                                "LIG_UB" as CodeUC

                                    From LIGNES

                                    WHERE LIG_TYPE NOT IN ('x', 'X', 'T');