Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
colombari-g
Contributor III
Contributor III

Modélisation en étoile

Bonjour,

Je suis en train de construire une application assez complète basée sur un logiciel de gestion commerciale.

J'avais dans un premier temps lié les tables comme dans une base relationnelle mais j'ai été rapidement confronté aux problèmes engendrés par plusieurs tables de fait (notamment les références circulaires).

Suivant les préconisations de Qlikview, j'ai donc modifié mon modèle de données pour passer à un schéma en étoile (éventuellement en flocon).

Qlikview schema étoile.jpg

Au début tout allait bien. J'ai relié mes Lots aux articles et fournisseurs via ma Table_Fait qui relie les clés primaires et ajoute une clé concaténée avec le script suivant :

[Table_Fait]:

//LOT

LOAD Distinct

    Hash128(Lot_cod,Fou_cod,Lfl_lig,Art_cod) as Lot_Key,

    Null()    as Fact_Key,

    null() as Fact_Frais_Key,

    Null() as Id_Fact,

    Null() as Id_Ligne_Fact,

    "Lot_cod" as Id_Lot,

    "Fou_cod" as Id_Fou_Lot,

    Null() as Id_Client,

    Hash128(Lot_cod, Lfl_lig) as Id_Lot_Ligne,

    "Art_cod" as Id_Article;

Le problème est arrivé quand j'ai voulu ajouter la table des factures. La jointure avec les clients est OK mais la ou ça coince c'est qu'une ligne de facture est rattachée à une ligne de lot et donc à un article et un fournisseur.

Concatenate ([Table_Fait])

//FACTURE

Facture_ligne:

LOAD Distinct

    Null() as Lot_Key,

    Hash128("Fac_nbl",Lf_lig, Text(Cli_cod) ) as Fact_Key,

    null() as Fact_Frais_Key,

    "Fac_nbl" as Id_Fact,

     Hash128("Fac_nbl",Lf_lig) as Id_Ligne_Fact,

     Null() as Id_Lot,

     Null() as Id_Fou_Lot,

     Text(Cli_cod) as Id_Client,

     Hash128(Lot_cod, Lfl_lig) as Id_Lot_Ligne,

     Null() as Id_Article;

Comment faire la liaison avec la partie Lot ? Avec le code ci-dessus, lorsque je clique sur une facture, je n'ai plus les articles.

Faut il que j'aille chercher en SQL les articles et fournisseurs rattachés à un lot d'une ligne de facture ?

Merci d'avance pour votre aide.

Gilles

1 Reply
colombari-g
Contributor III
Contributor III
Author

En faisant un exemple plus simple, je crois avoir trouvé une solution. Au lieu de faire concatenate sur ma table de fait, j'ai fait un join et la ça a l'air de fonctionner.

Voir l'exemple ci-joint.

Pouvez-vous me dire si c'est la bonne solution ?

Merci d'avance

Gilles