Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour
Ma difficulté est d'avoir une mesure qui calcul la somme de l'objectif sur la période de vente
Soit deux tables
T_Obj les champs sont date_Obj , Obj_jour / Objectif journalier du trimestre
T_Vte les champs sont date_Vte , Vente_jour / Ventes journalier du début du trimestre à une date dans le trimestre
J'ai tenté cette solution infructeuse
Sum({<date_Obj= {"<$(Max(Date_vte))"> } Obj_jour)
Bonjour Christophe,
Une amélioration forte avec l'utilisation du flag =1 sur la table des objectifs et en présentation la formule
Sum({<FlagVte= {1}>} ObjectifJour)
Le résultat est imparfait, il exclue les objectifs des dates sans ventes inclus dans la période ( ici <08/06/2018).
Il me faut trouver la bonne formule dans le load qui permet de faire le marquage avec la date de la dernière ventes.
voici lmon Script Load
// Création d'une table temporaire comportant l'ensemble des champs objectif
Objectifs_temps :
LOAD
num(Date_d) as DateN_Obj,
Date_d as Date_Obj,
ZoneQlik as Zone_Obj,
BriqueQlik as Brique_Obj,
ZoneQlik & '|' & BriqueQlik & '|' & num(Date_d) as KeyBase,
Money(ObjectifJour,'# ##0, €') as ObjectifJour
FROM [lib://SourcesXLS/Objectif.xlsx]
(ooxml, embedded labels, table is Requête6);
inner join (Objectifs_temps)
//Jointure pour préparation du marquage des ventes (Flag)
Ventes_Tmp :
LOAD
num(Date_detail) as DateN_Vte,
Date_detail as Date_Vte,
ZoneQlik as Zone_Vte,
BriqueQlik as Brique_Vte,
ZoneQlik & '|' & BriqueQlik & '|' & num(Date_detail) as KeyBase,
Money(Vte,'# ##0, €') as Vte
FROM [lib://SourcesXLS/Ventes.xlsx]
(ooxml, embedded labels, table is Requête5);
NOCONCATENATE
// mise en place du marqeur dans la table resultat qui est la table Objectifs initiale
//à laquelle l'on ajoute les ventes par jointure
Resultat:
LOAD
num(Date_d) as DateN_Obj,
Date_d as Date_Obj,
ZoneQlik as Zone_Obj,
BriqueQlik as Brique_Obj,
ZoneQlik & '|' & BriqueQlik & '|' & num(Date_d) as KeyBase,
Money(ObjectifJour,'# ##0, €') as ObjectifJour
FROM [lib://SourcesXLS/Objectif.xlsx]
(ooxml, embedded labels, table is Requête6);
left Join
Objectifs_temps :
LOAD
// DateN_Obj,
// Date_Obj,
// Zone_Obj,
// Brique_Obj,
KeyBase,
1 as FlagVte //ajout du marqueur
// ObjectifJour
resident Objectifs_temps;
Drop Table Objectifs_temps;
left join
Ventes :
LOAD
num(Date_detail) as DateN_Vte,
Date_detail as Date_Vte,
ZoneQlik as Zone_Vte,
BriqueQlik as Brique_Vte,
ZoneQlik & '|' & BriqueQlik & '|' & num(Date_detail) as KeyBase,
Money(Vte,'# ##0, €') as Vte
FROM [lib://SourcesXLS/Ventes.xlsx]
(ooxml, embedded labels, table is Requête5);
Mes remerciements à Christophe
La solution sans avoir recours au set Analysis est de passer par un flag avec une conversion de la date en numérique.
Soit
//Ventes contient les ventes du début de l'année à la date du jour
Ventes :
LOAD
Date_detail as Date_Vte,
num( Date_detail) as DateN_Vte,
ZoneQlik as Zone_Vte,
BriqueQlik as Brique_Vte,
ZoneQlik & '|' & BriqueQlik & '|' & Date_detail as KeyBase,
Money(Vte,'# ##0, €') as Vte
FROM [lib://SourcesXLS/Ventes.xlsx]
(ooxml, embedded labels, table is Requête5);
//variable Date en nombre
Date_Temp:
LOAD
Max(DateN_Vte) as MaxDate
Resident Ventes;
Let vMaxDateVente = num(Peek('MaxDate'));
Drop Table Date_Temp;
Right Join //la jointure permet d'éliminer les ventes avant le 1er avril
// la table objectifs contient les objectifs du T2
Objectifs :
LOAD
num(Date_d) as Date_Obj,
ZoneQlik as Zone_Obj,
BriqueQlik as Brique_Obj,
ZoneQlik & '|' & BriqueQlik & '|' & Date_d as KeyBase,
// permet le marquage des objectifs de la période de vente du trimestre
if(num(Date_d) <= $(vMaxDateVente),1,0) as Flag_Obj,
Money(ObjectifJour,'# ##0, €') as ObjectifJour
FROM [lib://SourcesXLS/Objectif.xlsx]
(ooxml, embedded labels, table is Requête6);
-------------------------------------------------------------------------------
Pour le set Analysis, je vais tester une formule en travaillant sur le numérique de la date, en reprenant la proposition de Sunny Talwar