Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
fanchmat44
New Contributor III

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

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

(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

(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

(ooxml, embedded labels, table is dotations);

STORE Dotation into 3_Dotation.qvd(qvd);

Service:

LOAD UF,

     Etage,

     Bâtiment

FROM

(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);

Tags (1)
4 Replies
nicolas66
New Contributor III

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

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

(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 .....

fanchmat44
New Contributor III

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

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. 

nicolas66
New Contributor III

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

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 :-))

fanchmat44
New Contributor III

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

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?