Qlik Community

Groupe des Utilisateurs Francophones

cancel
Showing results for 
Search instead for 
Did you mean: 
jmialoundama
Creator III
Creator III

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
Specialist III
Specialist III

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
Partner

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
Specialist III
Specialist III

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
Creator III
Creator III
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
Partner

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
Creator III
Creator III
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
Partner

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
Creator III
Creator III
Author

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

kevinchevrier
Partner
Partner

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
Creator III
Creator III
Author

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