Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Calcul entre table de faits et dimension sur un grafique

Bonjour,

J'ai un soucis d'affichage sur mon graphe qui affiche le nombre de presentation par nom de presentateur.

j'ai la table de dimension PRESENTATEUR et ma table de faits PRESENTATION

DIM_PRESENTATEUR
id_presentateur
first_name
lastname
adresse
FACT_PRESENTATION
id_presentation
id_presentateur
duree_presentation

J'ai fait un premier chargement dans qlikview avec le script suivant:

PRESENTER:

LOAD `id_presenter`,

     first_name,

     `lastname`,

    `first_name`&' '&`lastname` as PRESENTER_NAME,

    `adresse`;

SQL SELECT *

FROM DIM_PRESENTER P, DIM_INSTANCE I

where P.DIN_ID=I.DIN_ID;

PRESENTATION:

LOAD `id_presentation`,

    `id_presentateur`,

    `id_presentateur` as PERSON_ON

    `duree_presentation` AS DURATION;

SQL SELECT *

FROM FACT_PRESENTATION FP, DIM_INSTANCE I

where I.DIN_ID=FP.DIN_ID;

au niveau du graphe, quand je prend comme dimension PRESENTER_NAME, et dans l'expression calcul je mets count(id_presentation).J'ai le graphe suivant (image1) avec le nombre total de presentation. Mais quand je mets plutot comme dimension

id_presentateur et comme expression count(id_presentation) j'ai le graphe suivant(image2).

or que mon but c'est d'avoir le nom des presentateurs a la place des chiffres. comment y arriver, car je ne me retrouve pas.

Pouvez vous m'aider?

Merci

Labels (1)
15 Replies
Anonymous
Not applicable
Author

Florent,

j'ai essayé, mais j'ai une erreur de lecture lors de la connection a la base:

echec de lecture ODBC

SQL SELECT *

FROM DIM_PRESENTER P, DIM_INSTANCE I

where P.DIN_ID=I.DIN_ID

AND I.DIN_TYPENAME='KADRIGE';

ODBC CONNECT TO [Dashboad-IB];

PRESENTER:

LOAD *,

    `DPR_ID`as PRESENTER_ID,

    `DPR_FIRSTNAME`&' '&`DPR_LASTNAME` as PRESENTER_NAME,

    `DGE_ID` AS SEX,

    `DPR_EMAIL` AS EMAIL_PRESENTER;

SQL SELECT *

FROM DIM_PRESENTER P, DIM_INSTANCE I

where P.DIN_ID=I.DIN_ID

AND I.DIN_TYPENAME='KADRIGE';

STORE PRESENTER INTO qvd\PRESENTER.qvd (qvd);

flochi75
Creator III
Creator III

voici un exemple qui marche chez moi.

Capture.PNG

après les "as", mes noms de champs ont besoin d'être encadrés de guillemets...

peut-être est-ce pareil pour toi...

flochi75
Creator III
Creator III

dans ton LOAD, je vois aussi que tu as des simples coches, peut-être faut il les mettre après les AS...

Capture.PNG

Anonymous
Not applicable
Author

Florent,

J'ai fait comme tu viens de dire, mais rien n'a marché. au fait pour éviter tout j'ai donc crée des champs dans la table d'origine ce qui fait fait je ne fait plus de rajouts dans le script. Malgré cela rien ne marche. Je voudrais savoir si le problème venais des $syn que crée les clés. comment faire pour ne plus les avoir dans le modèles en etoilé?

flochi75
Creator III
Creator III

je renommerai chaque champ clé pour qu'il ne puisse correspondre qu'à 2 tables communes à chaque fois :

par exemple :

     table1:

    • a
    • a as b

     table 2:

    • a s b
    • a as c

     table3 :

    • a as c
    • a as d

...

Florent

nicolas66
Contributor III
Contributor III

Bonjour,

dans le script, je note deux noms (id_presenter et id_presentateur) alors qu'ils sont identiques dans les deux tables.

Il n'y a donc pas de jointure possible entre les 2 tables crées.

Peut-être est-ce la première correction à apporter.

Philippe