Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
lmasson43
Contributor III
Contributor III

Comparaison Campagne Maketing N / N-1

Bonjour,

Je dois réaliser un tableau me permettant de comparer l'efficacité des campagnes marketing par rapport au Chiffre d'affaire généré

La comparaison doit prendre en compte les périodes durant lesquelles, les campagnes se sont déroulées :


Magasin: CA N-1; CA N; Evolution par rapport les periodes ci dessous

Exemple de 2 campagnes avec leurs périodes respectives:

- NOEL2018 : du 05/12/2018 au 31/12/2018

- NOEL2017:  du 01/12/2018 au 27/12/2018

Dans mon script, j'ai

- un fichier QVD pour mes ventes: NumFac;Client;Article;Qté;Punet;CA;Date_Facturation

- un fichier Excel avec le code de la campagne, le cout, le nombre de catalogue envoyé, la date de début, la date de fin de la campagne

- un calendrier qui a été généré  selon le modèle ci dessous (voir en bas de page):

Ma question est donc la suivante: Quand je sélectionne 2 campagnes, j'aimerai pouvoir visualiser le CA facturé généré durant ces deux campagnes? En l'occurence, le CA généré entre le 01/12/2017 et 27/12/2017 et entre le du 05/12/2018 et 31/12/2018

Merci de votre aide car je sèche... 😉

Loic M.

--------------------------------------------------------------------------------

//CALENDRIER
PERIODE_FISCALE:
LOAD * INLINE [
    MIN, MAX, PERIODE
01/03/2016, 28/02/2017, 2017
01/03/2017, 28/02/2018, 2018
01/03/2018, 28/02/2019, 2019];

CALENDRIER:
LOAD 
  
Date($(vDateMin)+RecNo()) as Date_Facturation,
  
month($(vDateMin)+RecNo()) as [Mois_fiscal],
  
num(Month($(vDateMin)+RecNo()))-3 as FiscalMonthNum,
  
Day($(vDateMin)+RecNo()) as [Jour],
   'T'&
ceil(month($(vDateMin)+RecNo())/3) as [Trimestre],
  
WeekDay($(vDateMin)+RecNo()) as [Jour semaine]
  
AUTOGENERATE($(vNbJours));

LEFT Join
IntervalMatch(Date_Facturation)
LOAD
MIN,
MAX
Resident PERIODE_FISCALE;
JOIN
LOAD *
Resident PERIODE_FISCALE;
DROP TABLE PERIODE_FISCALE;

15 Replies
lmasson43
Contributor III
Contributor III
Author

En fait non puisque Date_Début_Campagne et Date_Fin_Campagne apparaissent uniquement dans le calendrier Campagne, si je les rajouter dans mon script suivant, j'ai à nouveau une clé synthétique entre Date, Date_Début_Campagne et Date_Fin_Campagne....


Si je ne rajoute pas les deux dates, je n'ai aucune associativité...

Aurelien_Martinez
Partner - Specialist II
Partner - Specialist II

L'idée est d'avoir un modèle comme ceci :commu.PNG

Help users find answers! Don't forget to mark a solution that worked for you!
lmasson43
Contributor III
Contributor III
Author

Aurélien,

J'ai essayé, en fait j'ai plusieurs tables au départ:

- Les ventes

- Le descriptifs des campagnes (avec le champ K_Campagne)

- Le nombre de catalogues envoyés répart par code postal (avec le champ K_Campagne)

- La liste des clients destinataire des catalogues (avec le champ K_Campagne)

- La liste des Articles concernés par la promotion su cette campagnes


--> J'ai concaténé toutes les tables avec un

- TYPE_FAIT=VENTE pour les vente

- TYPE_FAIT=DESCRIPTIF_CAMPAGNE

- TYPE_FAIT=REPARTITION_CATALOGUE_CAMPAGNE

- TYPE_FAIT=ARTICLE_CAMPAGNE


--> Je réalise un store into CAMPAGNES_VENTES.QVD(QVD)

J'obtiens donc une seule table avec toutes mes informations.


Mais si je fais comme tu me le préconises, je peux effectivement filtrer par K_Campagne, j'ai donc mon CA sur la période de ma campagne mais je n'ai plus le détail par Campagne à savoir: le cout, le nombre de catalogue envoyé par Code postal, les articles concernés et les analyses croisées que je souhaiterai faire

Je ne sais pas si je suis plus clair...

Aurelien_Martinez
Partner - Specialist II
Partner - Specialist II

Loïc,

Peut-être en ajoutant un champ : date_k_campagne dans la table de fait

Mettre une table de lien entre le calendrier et les faits.

commu.PNG

Niveau script ça peut donner ça :

//lien avec les campagnes

CALENDRIER_CAMPAGNE:

LOAD K_CAMPAGNE,

     Date_Début_Campagne,

     Date_Fin_Campagne

FROM

(ooxml, embedded labels, table is Feuil1);



LEFT Join (CALENDRIER_CAMPAGNE)

IntervalMatch(Date)

LOAD

Date_Début_Campagne,

Date_Fin_Campagne

Resident CALENDRIER_CAMPAGNE;


Lien:

Load

*,

Date & '|' & K_CAMPAGNE as _key_Date_Capagne

resident CALENDRIER_CAMPAGNE

;


drop table CALENDRIER_CAMPAGNE;


concatenate(Lien)

Load distinct

_key_Date_Capagne,

  Date,

  K_CAMPAGNE

resident CAMPAGNES_VENTE

;


drop fields K_CAMPAGNE, Date from CAMPAGNES_VENTE;

Help users find answers! Don't forget to mark a solution that worked for you!
lmasson43
Contributor III
Contributor III
Author

Salut Aurélien,

J'ai essayé et je pense que c'est une bonne idée mais j'ai encore une erreur:

Table introuvable

concatenate(LIEN)

Load distinct

_key_Date_Capagne,

  Date,

  K_Campagne

resident CAMPAGNES_VENTE

Voici mon script:

//CALENDRIER ES VENTES
PERIODE_FISCALE:
LOAD * INLINE [
    MIN, MAX, PERIODE
   
    01/03/2011, 28/02/2012, 2012
    01/03/2012, 28/02/2013, 2013
    01/03/2013, 28/02/2014, 2014
    01/03/2014, 28/02/2015, 2015
    01/03/2015, 29/02/2016, 2016
01/03/2016, 28/02/2017, 2017
01/03/2017, 28/02/2018, 2018
01/03/2018, 28/02/2019, 2019]
;

CALENDRIER:
LOAD 
  
Date($(vDateMin)+RecNo()) as Date,
  
//Year($(vDateMin)+RecNo()) as [Fiscal Year],
   month($(vDateMin)+RecNo()) as [Mois_fiscal],
  
//   Date($(vDateMin)+RecNo()) as Date_Création_Client,
  // month(Date($(vDateMin)+RecNo())) as Mois_Création_Client
  num(Month($(vDateMin)+RecNo()))-3 as FiscalMonthNum,
  
Day($(vDateMin)+RecNo()) as [Jour],
   'T'&
ceil(month($(vDateMin)+RecNo())/3) as [Trimestre],
   WeekDay($(vDateMin)+RecNo()) as [Jour semaine]
  
AUTOGENERATE($(vNbJours));
join

LOAD Date,
    
Cumul_mois,
    
Cumul_annuel
FROM
$(vCheminBdd)jours_ouvrés.xlsx
(
ooxml, embedded labels, table is Feuil1);


//lien avec les campagnes

CALENDRIER_CAMPAGNE:
LOAD K_Campagne,
     Date_Début_Campagne,
     Date_Fin_Campagne
FROM


(ooxml, embedded labels, table is Feuil1);

LEFT Join (CALENDRIER_CAMPAGNE)

IntervalMatch(Date)
LOAD
Date_Début_Campagne,
Date_Fin_Campagne
Resident CALENDRIER_CAMPAGNE;

LIEN:
Load
*,
Date & '|' & K_Campagne as _key_Date_Capagne
resident CALENDRIER_CAMPAGNE;
drop table CALENDRIER_CAMPAGNE;

concatenate(LIEN)

Load distinct
_key_Date_Capagne,
  Date,
  K_Campagne
resident CAMPAGNES_VENTE;
drop fields K_Campagne, Date from CAMPAGNES_VENTE;
*/
//exit script;

Ensuite j'ai mon QVD avec les fAITS


Si tu as une idée, je suis preneur...;-)

Aurelien_Martinez
Partner - Specialist II
Partner - Specialist II

Salut Loïc,

La table CAMPAGNES_VENTE n'existe pas au moment de l’exécution de

concatenate(LIEN)

Load distinct

_key_Date_Capagne,

  Date,

  K_Campagne

resident CAMPAGNES_VENTE

Help users find answers! Don't forget to mark a solution that worked for you!