Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
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
alexandros17
Partner - Champion III
Partner - Champion III

Construire une vue en sql puis lire dans QlikView

Not applicable
Author

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

Nicole-Smith

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

alexandros17
Partner - Champion III
Partner - Champion III

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
Author

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'

Anonymous
Not applicable
Author

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
Author

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
Author

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
Author

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