Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
jmialoundama
Specialist
Specialist

Classement TOP 3 DIMENSION

Bonjoiur,

J'ai un tableau avec UNIQUEMENT des dimensions (ce qui signifie que je ne peux pas jouer sur la limitation des données dans les options du tableau, car ça ne s'applique que aux mesures) et je souhaiterai limiter le résultat de mon tableau au trois premiers

Capture.JPG

C'est à dire que l'on puisse uniquement voir les 3 premiers de mon tableau :

ID.Collab     Nom-Prénom         Panier moyen      Mois(cal)2      Rank

2                 DARRAS Sophie    105,6                   fev                  1

1                STOLIARSKI Cyril    85,3                   mars                2

38               NABET Jérémie        58,62                avr.                  3

Merci d'avance

1 Solution

Accepted Solutions
brunobertels
Master
Master

Bonjour

Si tu as utilisé le script de Sébastien

Top_indicateurs:

NoConcatenate

LOAD *,

RowNo() as Rank

Resident Temp_top_indicateurs

Order by "Panier moyen" desc, [Id. Collab];

Capture.PNG

Alors Rank est une dimension

Et dans ton tableau tu peux limiter ta dimension Rank

Sinon tu rajoute cette ligne where rank <= 3 comme ceci

Top_indicateurs:

NoConcatenate

LOAD *,

RowNo() as Rank

Resident TopIndicateur

WHERE Rank <= 3

Order by "Panier moyen" desc, [Id. Collab];

View solution in original post

9 Replies
kevinchevrier
Partner - Creator III
Partner - Creator III

Sur QlikView c'est possible avec les limites dimensionnelles.

Sur Qlik Sense, sans Set analysis ce n'est pas possible. A moins d'avoir indiqué dans ton script une clause WHERE : WHERE Rank <= 3

brunobertels
Master
Master

Bonjour

Si tu as utilisé le script de Sébastien

Top_indicateurs:

NoConcatenate

LOAD *,

RowNo() as Rank

Resident Temp_top_indicateurs

Order by "Panier moyen" desc, [Id. Collab];

Capture.PNG

Alors Rank est une dimension

Et dans ton tableau tu peux limiter ta dimension Rank

Sinon tu rajoute cette ligne where rank <= 3 comme ceci

Top_indicateurs:

NoConcatenate

LOAD *,

RowNo() as Rank

Resident TopIndicateur

WHERE Rank <= 3

Order by "Panier moyen" desc, [Id. Collab];

jmialoundama
Specialist
Specialist
Author

J'ai testé dans un premier temps la clause "WHERE" dans mon script mais j'ai le message d'erreur suivant:

Capture.JPG

Voici mon script:

Temp_top_indicateurs:

Let varCurrentYear = Year(Today());

LOAD

[Id. Collab],

weekyear(Jour) & '-' & right('0' & week(Jour),2)            as "Année-semaine (cal)2",

month(Jour)                                                     as "Mois (cal)2",

sum([_CA TTC net <>0]) / sum([_Nb. Tickets <>0])                as "Panier moyen"

From 'lib://QVData/Fait.qvd' (qvd)

Where weekyear(Jour)=$(varCurrentYear)

group by [Id. Collab],

        weekyear(Jour) & '-' & right('0' & week(Jour),2),

         month(Jour);

          ;


Top_indicateurs:

NoConcatenate

LOAD *,

RowNo() as "Rank"

Resident Temp_top_indicateurs

    Where "Rank" <=3

Order by "Panier moyen" desc, [Id. Collab];


DROP Table Temp_top;

kevinchevrier
Partner - Creator III
Partner - Creator III

Temp_top_indicateurs:

Let varCurrentYear = Year(Today());

LOAD

[Id. Collab],

weekyear(Jour) & '-' & right('0' & week(Jour),2)            as "Année-semaine (cal)2",

month(Jour)                                                     as "Mois (cal)2",

sum([_CA TTC net <>0]) / sum([_Nb. Tickets <>0])                as "Panier moyen"

From 'lib://QVData/Fait.qvd' (qvd)

Where weekyear(Jour)=$(varCurrentYear)

group by [Id. Collab],

        weekyear(Jour) & '-' & right('0' & week(Jour),2),

         month(Jour);

          ;


Top_indicateurs:

NoConcatenate

LOAD *,

RowNo() as "Rank"

Resident Temp_top_indicateurs

    Where RowNo() <=3

Order by "Panier moyen" desc, [Id. Collab];


DROP Table Temp_top_indicateurs;

jmialoundama
Specialist
Specialist
Author

J'ai modifié le script en limitant à 3 le Rank, cependant j'ai quand même les autres données qui s'affichent :

Capture.JPG

kevinchevrier
Partner - Creator III
Partner - Creator III

d'où l'intérêt d'utiliser des set analysis comme je te le disais... Comme tes noms prénoms sont dans une autre table, ils ne sont pas filtrés...

jmialoundama
Specialist
Specialist
Author

Ok d'accord je comprends mieux , merci quand même

kevinchevrier
Partner - Creator III
Partner - Creator III

Tu peux éventuellement faire IF("Rank"<=3,"Nom-Prénom") dans ta dimension... J'ai mis des guillemets dans la dimension car il me semble que tu as mis des guillemets dans ton script. Si ce n'est pas le cas, adapte la formule aux noms de tes champs.

L'utilisation des IF n'est pas idéal en terme de performance. Comme je te l'ai dit, l'idéal reste les set analysis. Surtout que c'est assez simple de les utiliser dans ton cas une fois le champ rank créé.

jmialoundama
Specialist
Specialist
Author

finalement j'ai trouvé une autre alternative que le set analysis