Bonjour à tous,
J'ai récemment développé une application Qlikview qui s'est peu à peu transformé en une véritable "usine à gaz".
Je souhaite donc la refondre et précalculer un certain nombre d'indicateurs directement dans le script, afin d'améliorer sa maintenabilité (et pourquoi pas d'améliorer ses performances à l'affichage).
Donc pour l'instant, j'ai une table "Indicateurs" du type :
- Champ n°1 : CODE_CENTREPROFIT
- Champ n°2 : CODE_AFFAIRE
- Champ n°3 : PERIODE
- Champ n°4 : CODE_LIGNE
- Champ n°5 : MONTANT
Dans l'application actuelle, j'utilise dans les différents tableaux (très nombreux) des expressions du type :
- Indicateur1 =Sum({$<CODE_LIGNE={'aaa','bbb','ccc'}>}MONTANT)
- Indicateur2 =Sum({$<CODE_LIGNE={'xxx','yyy','zzz'}>}MONTANT)
- Indicateur3 ="Indicateur1"/"Indicateur2"
etc.
Je souhaite donc effectuer ces calculs directement dans le script. J'ai donc renommé ma table "Indicateurs" en "Indicateurs_temp", puis je fais :
L'ennui c'est que j'obtiens une table où toutes les lignes sont dupliquées pour l'indicateur1 (avec une colonne "Indicateur2" ne contenant que des 0) et vice-versa.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Indicateurs_temp2 : LOAD "CODE_CENTREPROFIT", "CODE_AFFAIRE", "PERIODE", Sum(If(Match("CODE_LIGNE",'aaa','bbb','ccc')>0,"MONTANT")) as "Indicateur1", Sum(If(Match("CODE_LIGNE",'xxx','yyy','zzz')>0,"MONTANT")) as "Indicateur2" RESIDENT Indicateurs_temp GROUP BY "CODE_CENTREPROFIT","CODE_AFFAIRE","PERIODE"; Indicateurs : LOAD "CODE_CENTREPROFIT", "CODE_AFFAIRE", "PERIODE", "Indicateur1", "Indicateur2", "Indicateur1"/"Indicateur2" as "Indicateur3" RESIDENT Indicateurs_temp2; DROP TABLE Indicateurs_temp; DROP TABLE Indicateurs_temp2;
Je ne peux donc pas calculer l'indicateur3...
Auriez-vous une solution à ce pb?
Merci d'avance pour vos réponses.
Partager