Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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).
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
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