Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

valeurs manquantes avec concatenate(link table)

Bonjour à tous,

Je suis nouvelle utilisatrice de qlikview.Je réalise en ce moment ma première application.

J'ai fait une modélisation en étoile avec une table de dimensions et des tables de faits et j'ai souhaité créer une table de lien en utilisant concatenate.Il se trouve que j'ai des valeurs qui sont remplacées par des "-" ce qui fausse le lien entre mes différentes fenêtres.

Quelqu'un d'entre vous aurait-il la solution à mon problème svp?

Merci d'avance.

Labels (1)
1 Solution

Accepted Solutions
almamy_diaby
Creator
Creator

Bonjour, je ne comprend pas bien ce que vous voulez faire.

Cependant, "Concatenate" permet d'unir deux tables même si ces deux tables n'ont aucun champ en commun.

Et, c'est lorsqu' un champ n'est pas commun aux deux tables qu'on apparition des "-"

Essaie d'être plus explicite, en postant ton schéma de données avec des commentaires ou bien en postant ton application.

Cordialement,

View solution in original post

5 Replies
almamy_diaby
Creator
Creator

Bonjour, je ne comprend pas bien ce que vous voulez faire.

Cependant, "Concatenate" permet d'unir deux tables même si ces deux tables n'ont aucun champ en commun.

Et, c'est lorsqu' un champ n'est pas commun aux deux tables qu'on apparition des "-"

Essaie d'être plus explicite, en postant ton schéma de données avec des commentaires ou bien en postant ton application.

Cordialement,

Not applicable
Author

Bonjour Almamy, merci pour ta disponibilité.

Je vais tâcher d'être plus explicite.

Voici mon schéma de données:

schémadonnées.PNG

J'ai créé la table LINK_Table pour faire le lien entre les tables de faits et ma table de dimension.

Pour cela j’ai concaténé les lignes provenant des différentes tables.

(j'ai copié ci-dessous le script de ma table de lien)

LINK_Table:

LOAD Distinct

VM,

KEY_VM_CPU,

Day,

Month,

Year,

Host,

KEY_Date

Resident Fact_CPU;

Concatenate (LINK_Table) 

LOAD Distinct

VM,

KEY_VM_VM,

Day,

Month,

Host,

KEY_Date

Resident Fact_VM;

Concatenate (LINK_Table)    

LOAD Distinct

VM,

KEY_VM_Disk,

Host,

//Day,

//Month,

//Year,

KEY_Date

Resident Fact_Disk;

Concatenate (LINK_Table) 

LOAD Distinct

KEY_Host,

KEY_Date,

Host,

Day,

Month,

Year

Resident Fact_Host;

Concatenate (LINK_Table) 

LOAD Distinct

KEY_VM,

KEY_Host,

Host

Resident Dim_Machine;

DROP Fields VM,KEY_Date,Host FROM Fact_CPU;

DROP Fields VM,KEY_Date,Host,OS FROM Fact_VM;

DROP Fields VM,KEY_Date,Host FROM Fact_Disk;

DROP Fields Host,KEY_Date FROM Fact_Host;

DROP Field KEY_Host,Host,VM FROM Dim_Machine;

DROP Fields Day,Month,Year FROM Fact_CPU;

DROP Fields Day,Month,Year FROM Fact_VM;

DROP Fields Day,Month,Year FROM Fact_Host;

Pour obtenir aperçu du contenu de la table concaténée, j’ai créé une zone table et je me rends compte que certaines lignes ne sont pas complètes et contiennent un « - » à la place.

zonetable.PNG

J'espère que j'ai été plus claire dans mes explications.

Cordialement.

almamy_diaby
Creator
Creator

Bonjour,

Voici comment je comprends ton problème.

On a 4 tables de faits (Fact _VM, Fact_CPU, Fact_Host  et Fact_Disk)

et deux tables de dimensions ( Calendrier et Dim_machine).

Je remarque qu'il ya deux clés (KEY_VM et KEY_Date).


Pour créer ma table pivot (Table qui va servir de lien entre les tables de dimension et de faits), je ne vais utiliser

que les clés (Date et KEY_VM ) de mes tables de faits uniquement (Parce je vois que tu as ajouté Dim_Machime  dans ta table link : l'erreur). Voila comment je procède:

LINK_Table:

Load  distinct

KEY_VM_VM as KEY_VM,

KEY_Date

Resident Fact_VM;


Concatenate


Load  distinct

KEY_VM_CPU as KEY_VM

KEY_Date

Resident Fact_CPU;


concatenate


Load  distinct

KEY_VM_Disk as KEY_VM,

KEY_Date

Resident Fact_Disk;


Concatenate


Load  distinct

KEY_VM_host as KEY_VM,

KEY_Date

Resident Fact_host;

C'est tout à fait normal que tu supprimes tous les champs relatifs à la date dans toutes les tables de faits.

Concernant le champ VM s'il n'existe pas dans la table Dim_Machine tu peux l'ajouter dans chaque table qui constituent la table Link et ensuite supprimer ce champ dans les différentes tables de faits.

J'attends ton feedback

Cordialement,


Not applicable
Author

Merci beaucoup Almamy pour ta réponse.

Seulement quand je prends ton exemple, mes tables de faits ne sont pas reliées avec ma table de dimension.

J'ai donc rajouté" VM as KEY_VM "dans chaque table de fait comme suit:

LINK_Table:

Load  distinct

KEY_VM_VM,

VM as KEY_VM,

KEY_Date,

Resident Fact_VM;

Concatenate

Load  distinct

KEY_VM_CPU,

VM as KEY_VM,

KEY_Date,

Resident Fact_CPU;

Concatenate

Load  distinct

KEY_VM_Disk,

VM as KEY_VM,

KEY_Date,

Resident Fact_Disk;

Concatenate

Load  distinct

KEY_Host,

KEY_Date,

Resident Fact_Host;

Sinon j'aimerai comprendre pourquoi la table Dim_Machine ne peut pas être ajoutée dans la table de lien.

(A la base je l'avais ajoutée pour pouvoir la lier avec les tables de faits via KEY_VM surtout pour ma table Fact_Host où je n'ai pas de champ VM)

Merci d'avance pour ton retour.

Cordialement,

almamy_diaby
Creator
Creator

Bonjour,

Je me rends compte qu'on retrouve le champ Host dans toutes les tables de Fait. Je pense qu'il faut utiliser

ce champ comme clé plutôt que VM.