Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
brunobertels
Master
Master

Aide Modèle de Données / Chargement de données /

Bonjour,

Pitch : comment à partir d'une table croisée , charger avec crosstable plusieurs sous table et les regrouper enfin en une seule et unique table.

J'ai dans un fichier Qvd CAMois une table croisée qui ressemble à çà :

J'ai colorer les colonnes qui doivent etre regroupées sous une même dimension

Dans cette table :

J'ai des acquisitions 12, 24 ou 48 mois avec à chaque fois une mensualité et des frais associées

j'ai ensuite des Migrations  et des resignatures etc

Sous cette forme je n'arrive pas a grouper et traiter mes données je veux donc charger des tables en utilisant crosstable

pour avoir au final une seule table globale qui ressemblerai à çà :

Pour ce faire je charge des tables temporaires  intermédiaires comme ceci :

Temp1 : //Nombre

crosstable(Type,Nombre)

load

    Mois&Conseiller&[Zone Linkeo CA] as ID,

    //Nombre   

    [Nbre Acquisitions 12 mois] as Acq_12,   

    [Nbre Acquisitions 24 mois] as Acq_24,

    [Nbre Acquisitions 48 mois] as Acq_48,

   

    [Nbre Migrations 12 en 24] as Mig_12_24,

    [Nbre Migrations 12 en 48] as Mig_12_48,

    [Nbre Migrations 24 en 48] as Mig_24_48,

   

    [Nbre Migrations 24 en 12] as Mig_24_12,

    [Nbre Migrations 48 en 12] as Mig_48_12,

    [Nbre Migrations 48 en 24] as Mig_48_24,

   

    [Nbre Resignatures 12 en 12] as Res_12_12,

    [Nbre Resignatures 24 en 24] as Res_24_24,

    [Nbre Resignatures 48 en 48] as Res_48_48,

    [Nbre Resignatures 48 en 48 (au 36ème mois)] as Res_48_48_36

    //[Nbre Ventes additionnelles] as Vente_Addi

          

    Resident [CAMois];

   

   

  

Temp2: //Mensualité

crosstable(Type,Mensualité)

load

    Mois&Conseiller&[Zone Linkeo CA] as ID,

   

    [Mensualité Acquisitions 12 mois] as Acq_12,   

    [Mensualité Acquisitions 24 mois] as Acq_24,   

    [Mensualité Acquisitions 48 mois] as Acq_48,

   

    [Nouvelle Mensualité Migrations 12 en 24] as Mig_12_24,

    [Nouvelle Mensualité Migrations 12 en 48] as Mig_12_48,

    [Nouvelle Mensualité Migrations 24 en 48] as Mig_24_48,

   

    [Nouvelle Mensualité Migrations 24 en 12] as Mig_24_12,

    [Nouvelle Mensualité Migrations 48 en 12] as Mig_48_12,

    [Nouvelle Mensualité Migrations 48 en 24] as Mig_48_24,

    [Nouvelle Mensualité Resignatures 12 en 12] as Res_12_12,

    [Nouvelle Mensualité Resignatures 24 en 24] as Res_24_24,   

    [Nouvelle Mensualité Resignatures 48 en 48] as Res_48_48,

    [Nouvelle Mensualité Resignatures 48 en 48 (au 36ème mois)] as Res_48_48_36

          

    Resident [CAMois];

A partir de la je n'arrive pas a joindre/concatener/regrouper ces différentes tables en une seule.

Quand je passe par concatenate avec ce script

Final:

NoConcatenate

load*resident Temp1;

Concatenate (Final)

load*resident Temp2;

drop table Temp1,Temp2;

drop table CAMois;

j'obtient ceci : les lignes sont décalées ce qui est normal avec concatenate

cela fausse ensuite les calculs que je veux faire :

En effet dans un tableau simple

si je fais Sum(Nombre) le résultat est Faux et est doublé. Si je met juste Nombre en mesure alors j'ai la bonne valeur.

Or je veux que ma formule puisse être sum(nombre)

Si je veux absolumment utiliser sum je dois ajouter distinct : sum(distinct Nombre)

Bref comme arriver à ce résultat :

sachant qu'à partir de la j'aurais besoin de rajouter des champs Dimensions pour regrouper les "Types" par prospect et client

et également calculer un CA global par Type ( ex Acq 12 = Mensualité *12 + Création) je dois donc rajouter une colonne multiplicateur ( 12 , 24 , 48 mois suivant le type )

a toute fin utile je joins mon app de travail

le dernier script en cours que je teste et sur Section 2 : charge la table Qvd et Section 3 : charge des Tables Temp1 et Temp2 à partir du Qvd mais j'aurais au moins 4 Tables temporaires à charger depuis le Qvd et ensuite les regrouper en une seule et je n'y arrive pas.

Merci de votre lecture et patience si vous êtes arrivé jusque là et par avance de votre aide si vous voyez comment m'aider sur ce problème

Bruno

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Bonjour,

Dans ton cas, il ne faut pas concaténer, mais joindre.

Après avoir créé tes tables temporaires :

...

RENAME Table Temp1 to Final;

//Joindre les Mensualités aux Nombres
Join(Final)
LOAD * Resident Temp2;

//Joindre les Créations aux Mensualités et Nombres
Join(Final)
LOAD * Resident Temp3;

DROP Table Temp2,Temp3;

DROP Table CAMois;

View solution in original post

2 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

Bonjour,

Dans ton cas, il ne faut pas concaténer, mais joindre.

Après avoir créé tes tables temporaires :

...

RENAME Table Temp1 to Final;

//Joindre les Mensualités aux Nombres
Join(Final)
LOAD * Resident Temp2;

//Joindre les Créations aux Mensualités et Nombres
Join(Final)
LOAD * Resident Temp3;

DROP Table Temp2,Temp3;

DROP Table CAMois;

brunobertels
Master
Master
Author

Bonjour Sébastien

Merci beaucoup pour ta réponse çà fonctionne parfaitement , c'est simple et concis et pourtant çà fait 1 semaine que je galère sur çà.

Merci Encore

Bruno