Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

Not applicable

Problème de Calcul dans le script

Bonjour,

je suis entrain de préparer un tableau de bord , au niveau script je dois faire de calcul à partir des données récupérées  par des requête SQL(la quantité de données est très grande).

Exemple :

FACT:

select A from AAA;

left join

select B from BBB;

left join

select C from CCC;

left join

select D from DDD;

et maintenant je dois faire le calcul :

Load A+B+C-D as Gap

resident FACT ;

L’étape de load est très gourmande au niveau mémoire et le calcul de ce GAP au niveau graphique est un peu lent.

Merci de m'aider pour optimiser cette solution.

9 Replies

Re: Problème de Calcul dans le script

Construire une vue en sql puis lire dans QlikView

Not applicable

Re: Problème de Calcul dans le script

c-à-d il y pas une solution au niveau QLIKVIEW ?

Re: Problème de Calcul dans le script

What is the key field between each of the loads?  It's taking forever because it's joining everything to everything.  I'm guessing you have to have a key field somewhere...

Re: Problème de Calcul dans le script

Désolé pour le mauvais français;

vous pouvez construire un QVD (qui consomme de la mémoire), puis l'enregistrer avec le "STORE"de lire les données prêt

Not applicable

Re: Problème de Calcul dans le script

Moi aussi je suis faible en francais .

Bon je suis entrain de tester le store dans de fichier QVD et je veux charger juste le GAP qui sont différent de 0, j’imagine que cette méthode est plus optimisé.

Est ce que le script suivant est juste (charger juste les gap différent de 0) ?:

load A,B,C,D, A+B+C-D as GAP

where num(GAP,'# ##0,000')<>'0,000'

eruditio
Contributor III

Re: Problème de Calcul dans le script

Vous pourriez rajouter des Load optimisés.

Exemple:

Commencez par une table de valeurs requises

Optimise_Temp:

LOAD * INLINE [

Attribut

1

2

3

];

Ensuite chargez la table requise à condition qu'elle contienne le champ faisant l'objet de l'optimisation.

Dans cet exemple, ce sera le champ Attribut.

Table_But:

LOAD

     Attribut,

     Vente

From [fichierSource.qvd]

Where Exists ( Valeur);

DROP TABLE 'Optimise_Temp';

Not applicable

Re: Problème de Calcul dans le script

Ridha,

Je suis étonné que le second LOAD n'ait pas de clefs communes avec le LOAD No 1.  QlikView n'empêchera pas le JOIN mais le nombre de lignes résultant sera la multiplication du nombre de lignes du 1er load x le nombre de lignes du second. Et comme il y a 4 LOAD, le nombre de lignes peut être colossal. D'ù la remarque que c'est très long.

Oui, on peut tenter de créer la bonne requête SQL. Et la charger dans QlikView.

Oui, on peut utiliser les QVD pour toutes les lignes qui ne bougeront pas (à déterminer par application)

LOAD A, B, C, D

WHERE round(A+B+C-D, 0.0001) <> 0  ; //ce sont des champs numériques, non ? si ce sont des champs décimaux, il est probable que la différence ne fasse pas 0, utiliser Round avec le bon facteur.

Fabrice


Not applicable

Re: Problème de Calcul dans le script

Il y a des clefs communes entre tous les requêtes , j'ai fait juste un exemple par hasard.

oui il sont des champs numériques.

Not applicable

Re: Problème de Calcul dans le script

Il y a des clefs communes entre tous les requêtes , j'ai fait juste un exemple par hasard.

Community Browser