Précédent   Forum du club des développeurs et IT Pro > Logiciels > Solutions d'entreprise > Business Intelligence > QlikView
QlikView Forum d'entraide QlikView (Web, Desktop, Publisher, Server, Mgmt Console...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/01/2013, 15h29   #1
Monfy29
Nouveau Membre du Club
 
Inscription : juillet 2008
Messages : 98
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 98
Points : 31
Points : 31
Par défaut Manipulation de tables : resident et drop

Bonjour à tous,

Voilà mon script :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
Table_temporaire_1:
LOAD
"Champ1" AS "Clé1",
"Champ2" AS "Clé2",
"Champ3" AS "Indicateur",
"Champ4" AS "Dimension";
SQL SELECT
"Champ1",
"Champ2",
"Champ3",
"Champ4"
FROM Table1;
 
INNER JOIN
 
LOAD
"Champ1" AS "Clé1",
"Champ2" AS "Libellé";
SQL SELECT
"Champ1",
"Champ2"
FROM Table2;
 
INNER JOIN
 
LOAD
"Champ1" AS "Clé2",
"Champ2" AS "Complément";
SQL SELECT
"Champ1",
"Champ2"
FROM Table3;
 
Table_temporaire_2:
LOAD
"Champ1" AS "Clé1",
"Champ2" AS "Clé2",
"Champ3" AS "Indicateur",
"Champ4" AS "Dimension";
SQL SELECT
"Champ1",
"Champ2",
"Champ3",
"Champ4"
FROM Table1bis;
 
INNER JOIN
 
LOAD
"Champ1" AS "Clé1",
"Champ2" AS "Libellé";
SQL SELECT
"Champ1",
"Champ2"
FROM Table2bis;
 
INNER JOIN
 
LOAD
"Champ1" AS "Clé2",
"Champ2" AS "Complément";
SQL SELECT
"Champ1",
"Champ2"
FROM Table3
 
Table_finale:
LOAD *
RESIDENT Table_temporaire_1;
 
LOAD *
RESIDENT Table_temporaire_2;
 
DROP TABLE Table_temporaire_1;
DROP TABLE Table_temporaire_2;
Table1 et Table1bis ont exactement les mêmes noms de champs, mais des données différentes.

Idem pour les Table2 et Table2bis.

La table 3 n'est pas duppliquée.

Je m'attendais à obtenir une union des deux tables temporaires (automatique puisque mêmes noms de champs) dans ma table finale, puis une suppression des deux tables temporaires.

A la place, Qlikview ne semble pas reconnaître l'étiquette "Table_finale:" ; il charge donc la table temporaire 1, puis la 2, et ajoute à cette dernière les données de la 1 puis à nouveau de la 2. Ensuite il drop les 2 tables, et je n'ai plus rien...

Je ne comprends pas d'où vient le souci. Quelqu'un aurait une idée?
Monfy29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 09h57   #2
PhunkyBob
Membre éclairé
 
Inscription : octobre 2006
Messages : 257
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 257
Points : 344
Points : 344
Bonjour,

Par défaut, QlikView est en mode "CONCATENATE", c'est à dire que si vous chargez une table qui a le même nombre de champs et les champs identiques, ces données n'iront pas dans une nouvelle table mais dans la table similaire.


Pour éviter ça, vous avez plusieurs solutions simples :

1- Faire en sorte de ne pas avoir le même nombre de champs entre Temp_1 et Finale :

Code :
1
2
3
4
5
6
Table_finale:
LOAD *, 'table 1' AS Source
RESIDENT Table_temporaire_1;
 
LOAD *, 'table 2' AS Source
RESIDENT Table_temporaire_2;
(c'est d'ailleurs grâce au concatenate automatique que vous avez les 2 tables qui se retrouvent dans la même)


2- Forcer à ce qu'il n'y ait pas de concaténation :

Code :
1
2
3
4
5
6
7
8
Table_finale:
NOCONCATENATE
LOAD *
RESIDENT Table_temporaire_1;
 
CONCATENATE (Table_finale)
LOAD *
RESIDENT Table_temporaire_2

3- Nommer les champs des tables temporaires différemment de la table finale.
PhunkyBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 11h07   #3
Monfy29
Nouveau Membre du Club
 
Inscription : juillet 2008
Messages : 98
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 98
Points : 31
Points : 31
Bonjour PhunkyBob,

Merci beaucoup pour ta réponse.

J'ai utilisé la solution "NOCONCATENATE"/"CONCATENATE", et ça fonctionne bien.

Je suis enfin débloqué
Monfy29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h34.


 
 
 
 
Partenaires

Hébergement Web