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
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
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];
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];
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
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];
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];
J'ai testé dans un premier temps la clause "WHERE" dans mon script mais j'ai le message d'erreur suivant:
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;
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;
J'ai modifié le script en limitant à 3 le Rank, cependant j'ai quand même les autres données qui s'affichent :
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...
Ok d'accord je comprends mieux , merci quand même
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éé.
finalement j'ai trouvé une autre alternative que le set analysis