2016-10-13 3 views
0

J'ai résolu ma table de faits avec ce post (Handling multiple fact tables in Qlikview). Mais j'ai un problème avec les tables d'entités. Je vais utiliser l'exemple dans ce post (Handling multiple fact tables in Qlikview) pour expliquer mon problème:Gestion de plusieurs tables de faits et de plusieurs entités (MySQL) avec des champs communs dans Qlikview/QlikSense

test_scores_fact  | enrollment_fact  | school   | gender   | student 
----------------  | ---------------  | ------   | ------   | --- 
school_code (FK)  | school_code (FK)  | school_code (PK) | gender_id (PK) | student_id (PK) 
test_code (FK)  | grade_id (FK)  | school_name (FK) | gender_desc | school_code (FK) 
grade_id (FK)  | ethnicity_id (FK) | address   | ...   | gender_id (FK) 
gender_id (FK)  | gender_id (FK)  | ...    | 
ethnicity_id (FK) | number_enrolled (F) | 
student_id(FK)  | 
test_score (F)  | 

Dans l'exemple, j'ai ajouté la table des étudiants qui ont une relation avec une table scolaire et table geneder.

Mon problème:

i suivi les étapes, alors je l'ai chargé mes tables sql Qlik Sense. J'ai également créé un rapport pour la table test_scores_face avec des filtres comme (student_id, gender_id, ...). Le problème que lorsque j'ai sélectionné le filtre student_id le rapport ne peut pas filtrer par lui? Je pense que le problème dans les tables d'entité (école, sexe, étudiant), car ils ont des champs communs (comme school_code, geneder_id). Ces champs communs produisent des références circulaires.

Pour éviter ces références circulaires, je dois faire une autre table de liens pour les tables d'entités ou les coupler à la table des liens des tables de faits. J'ai fatigué ces 2 solutions mais je ne peux pas non plus filtrer par student_id!

Comment puis-je résoudre ce problème?

+0

Il pourrait y avoir une tonne de causes pour le problème que vous mentionnez. Voici quelques points à vérifier: Assurez-vous que la boîte de filtre (zone de liste) et le diagramme sont dans le même état alternatif, assurez-vous que l'un des champs communs dans votre test_scores_fact renvoie à student_id par le biais de la table de liens. Vérifiez que le modèle de données est correctement configuré en essayant de filtrer sur l'un des champs communs comme 'gender_id'. – bdiamante

+0

J'ai édité mon message pour bien expliquer le problème. Je pense que le problème est que ces champs communs produisent des références circulaires. Pour éviter ces références circulaires, je dois faire une autre table de liens pour les tables d'entités ou les coupler à la table des liens des tables de faits. J'ai fatigué ces 2 solutions mais je ne peux pas non plus filtrer par student_id! de l'aide? merci –

Répondre

1

Vous devez supprimer le lien entre les tables, j'ai supposé que vous modifiez manuellement le script?

Si le champ n'est pas nécessaire pour le lien

  • Supprimer/Renommer le champ qui est à l'origine de la référence circulaire

Si les champs sont nécessaires pour relier, concaténer les champs dans les tables à l'aide Cela dépend de la façon dont vous voulez organiser vos données, mais pour commencer, il me semble que la note et le sexe pourraient être supprimés de la table des faits de l'inscription il étudiant.

+0

Je fatigué d'ajouter tous les identifiants de table dans la table de lien en les concaténant en utilisant & '_' & beacase j'ai besoin d'eux comme filtre dans mon application Sense, mais le problème n'est toujours pas résolu. Je ne pouvais pas le comprendre. Par exemple, si je veux filtrer par gender_id dans la table d'entrolement, cela ne fonctionne pas. Je ne sais pas comment je pourrais le résoudre. Merci. –